的,我嘗試轉換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