2016-12-28 58 views
0

的,我尝试转换Teradata的查询蜂巢蜂巢相当于Teradata的声明

WHERE visit_date BETWEEN (CURRENT_DATE-194) AND (CURRENT_DATE) 

其中visit_date是格式YYYY-MM-DD的字符串。

CURRENT_DATE在Hive中有效,但CURRENT_DATE-194发生错误。

我该如何在Hive中做到这一点?

+0

使用'UNIX_TIMESTAMP()'到得到的溶液比较日期 – Vikrant

回答

0

要获取Hive中过去194天的数据;
尝试下面的查询:

select * from table_1 where visit_date > date_sub(from_unixtime(unix_timestamp()), 194); 

注:时间戳毫秒
UNIX_TIMESTAMP是以秒

1

通过使用

visit_date BETWEEN date_sub(CURRENT_DATE,194) AND CURRENT_DATE 
+0

对,unix_timestamp()是非确定性的,从优化的nts查询。你的解决方案更好。另请参阅:http://stackoverflow.com/a/41140298/2700344 – leftjoin