создание даты из существующей в HiveQL - PullRequest
0 голосов
/ 29 мая 2018

Я совершенно новичок в Hive, и я очень признателен за некоторую помощь.

У меня есть столбец даты в моей таблице, и я хотел бы сохранить месяц и год этой даты.В Excel я бы сделал следующее:

datenew= date(year(old_date),month(old_date),1)

мой old_date имеет формат YYYY-MM-DD.

Спасибо !!

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Используйте функцию date_format или trunc, или substr()+concat().

Демо:

hive> select current_date original_date,
    >               date_format(current_date,'yyyy-MM-01') `date_format`,
    >               trunc(current_date, 'MM')              `trunc`,
    >               concat(substr(current_date,1,7),'-01') `substr`
    >               ;
OK
original_date   date_format     trunc           substr
2018-05-30      2018-05-01      2018-05-01      2018-05-01
Time taken: 0.093 seconds, Fetched: 1 row(s)
0 голосов
/ 29 мая 2018

Вы можете использовать TRUNC (date,fmt), которая является функцией, возвращающей дату с временной частью дня, усеченной до единицы, заданной моделью формата fmt.он всегда возвращает значение типа данных DATE:

Пример:

hive> select trunc(current_date, 'MM');
OK
2018-05-01

hive> select trunc(current_date, 'YEAR');
OK
2018-01-01
0 голосов
/ 29 мая 2018

Вы можете использовать trunc с опцией mm (для Hive версий 1.2 и новее), которая будет возвращать первое число месяца.

trunc(dateCol,'MM')

Если trunc не поддерживается, используйте

date_add(dateCol,1-day(dateCol))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...