Как запросить данные за последние 8 недель данных в Hive - PullRequest
0 голосов
/ 06 января 2020

Я хочу перевести приведенный ниже код из Vertica в Hive Синтаксис:

AND     
DATE_TRUNC('WEEK',d.signup_timestamp) 
BETWEEN 
        DATE_TRUNC('WEEK',now()-INTERVAL '8 WEEKS') 
AND 
        DATE_TRUNC('WEEK',now()-INTERVAL '1 WEEK')

1 Ответ

0 голосов
/ 06 января 2020

Функция Date_format будет хорошим вариантом здесь:

WHERE 
        DATE_FORMAT(d.signup_timestamp, '%V')
BETWEEN 
        DATE_FORMAT(CURRENT_DATE - INTERVAL 8 WEEK, '%V') 
AND 
        DATE_FORMAT(CURRENT_DATE - INTERVAL 1 WEEK, '%V') 

Обратите внимание:

(верхний регистр)% V: неделя, где воскресенье - первый день недели (с 01 по 53).

(нижний регистр)% v: неделя, где понедельник является первым днем ​​недели (от 01 до 53).

Измените его соответствующим образом.


Обновление:

Текущая_дата доступна начиная с Hive 1.2.0.

Если вы используете более старую версию, используйте ее для замены current_date.

TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))
...