Как проанализировать строку месяц-год с помощью Presto

#type-conversion #presto #trino

#преобразование типов #presto #trino

Вопрос:

У меня есть столбец, содержащий строку Месяц-год, которую я хотел бы преобразовать в фактическую дату, представляющую первый день комбинации месяца и года. Например

  ---------- ------------ 
| Original | Desired    |
 ---------- ------------ 
| Aug-19   | 08/01/2019 |
 ---------- ------------ 
| Sep-20   | 09/01/2020 |
 ---------- ------------ 
| May-22   | 05/01/2022 |
 ---------- ------------ 
 

Я попытался разделить строку Месяц-год, используя split_part , но когда я пытаюсь передать месяц в качестве параметра, date_parse он выдает ошибку с вводом ( INVALID_FUNCTION_ARGUMENT ). Я мог бы разбить месяц-год на строки, а затем рекомбинировать, жестко запрограммировав 01 , однако проблема заключается в том, что трехбуквенный месяц не может быть преобразован Presto в фактический месяц. Я также хочу избежать 12-строчной инструкции CASE WHEN для анализа месяца, если это возможно.

Комментарии:

1. функция %b data_parse ожидает 3 символа, но ваши данные содержат 4 символа (сентябрь). Вам нужно будет сократить данные.

2. Это лишнее t было на самом деле моей ошибкой. С тех пор я исправил это. Спасибо, что указали на это.

Ответ №1:

Я не уверен, откуда берется год, но запрос будет таким:

 select date_format(date_parse('May-22', '%b-%d'), '%m/%d/%Y')
 

https://trino.io/docs/current/functions/datetime.html?mysql-date-functions