Любая функция даты в улье может выбрать неделю месяца? - PullRequest
1 голос
/ 16 апреля 2019

Есть ли в Hive функция даты, которая может выбрать неделю месяца?
Предположим, что неделя начинается с воскресенья по субботу, а воскресенье - это день начала недели, а суббота - день окончания недели.

У меня есть список дат от 1900-01-01 до 2029-12-31. Я хочу знать, есть ли функция даты в Hive для получения недели месяца дней.
e.g.:

2019-02-01 to 2019-02-02 is the first week of FEB  
2019-02-03 to 2019-02-09 is the second week of FEB..  
2019-02-24 to 2019-02-28 is the 5th week of FEB  

Вот мой запрос:

select (weekofyear(date)-weekofyear(trunc(date,'month')) + 1 as Week_of_month

Однако возникает некоторая ошибка. В начале года неделя месяца отрицательная. например 1993-01-03 -51

1 Ответ

0 голосов
/ 16 апреля 2019

Используйте date_format(date/timestamp/string ts, string fmt) функцию .W шаблон формата означает номер недели в месяце.

select date_format('2019-02-01','W');
OK
1
Time taken: 0.076 seconds, Fetched: 1 row(s)

hive> select date_format('1993-01-03','W');
OK
2
Time taken: 0.054 seconds, Fetched: 1 row(s)

Другие полезные шаблоны формата даты и времени

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