#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