的,我尝试转换Teradata的查询蜂巢蜂巢相当于Teradata的声明
WHERE visit_date BETWEEN (CURRENT_DATE-194) AND (CURRENT_DATE)
其中visit_date
是格式YYYY-MM-DD的字符串。
CURRENT_DATE
在Hive中有效,但CURRENT_DATE-194
发生错误。
我该如何在Hive中做到这一点?
的,我尝试转换Teradata的查询蜂巢蜂巢相当于Teradata的声明
WHERE visit_date BETWEEN (CURRENT_DATE-194) AND (CURRENT_DATE)
其中visit_date
是格式YYYY-MM-DD的字符串。
CURRENT_DATE
在Hive中有效,但CURRENT_DATE-194
发生错误。
我该如何在Hive中做到这一点?
要获取Hive
中过去194天的数据;
尝试下面的查询:
select * from table_1 where visit_date > date_sub(from_unixtime(unix_timestamp()), 194);
注:时间戳毫秒
UNIX_TIMESTAMP是以秒
通过使用
visit_date BETWEEN date_sub(CURRENT_DATE,194) AND CURRENT_DATE
对,unix_timestamp()是非确定性的,从优化的nts查询。你的解决方案更好。另请参阅:http://stackoverflow.com/a/41140298/2700344 – leftjoin
使用'UNIX_TIMESTAMP()'到得到的溶液比较日期 – Vikrant