Как извлечь день / месяц / год и т. Д. Из поля даты varchar, используя Presto? - PullRequest
1 голос
/ 08 ноября 2019

В настоящее время у меня есть таблицы с датами, настроенные как VARCHAR в формате YYYY-MM-DD, например:

2017-01-01

Столбец даты, с которым я работаю, называется 'event_dt'

Я привык использовать day(event_dt), month(event_dt), year(event_dt) и т. Д. В Hive, но Presto просто дает мне error executing query без объяснения причин, когда запросы не выполняются.

Так, например, яя пробовал:

select
month(event_dt)
from
my_sql_table
where
event_dt = '2017-01-01'

Я ожидаю, что результат будет выглядеть так:

01

, но все, что я получу, это [Code: 0, SQL State: ] Error executing query

Я пробовал несколькодругие методы, перечисленные в документации Presto, но мне совсем не повезло. Я понимаю, что это, вероятно, очень просто, но любая помощь будет высоко ценится.

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Вы можете использовать функцию month() после преобразования varchar в date с помощью функции date():

presto> select month(date('2017-01-01'));
 _col0
-------
     1
(1 row)
1 голос
/ 08 ноября 2019

Благодаря @LukStorms в комментариях к исходному вопросу я нашел два решения:

  1. Использование месяца (приведение (event_dt в качестве даты))
  2. Использование месяца (дата (event_dt))
...