2015-08-31 35 views
0

不工作,而這樣做在HQL這種操作我得到systate()/ CURRENT_DATE()在HQL

的Java SQL異常:錯誤10011 - 無效函數SYSDATE()。也得到同樣的當前日期..

WHERE TO_DATE (CONCAT(year,'-',month,'-',day)) >= sysdate()-8 
AND TO_DATE (CONCAT(year,'-',month,'-',day)) <= sysdate()-2 

我怎麼能改寫它? 幫我走出這

回答

0

作爲配置單元1.2.0你可以使用current_date(),在以前的版本,它可以實現與>=date_sub(from_unixtime(unix_timestamp()),8) f.i.根據hive manual不管

0

您應該能夠使用UNIX_TIMESTAMP()/ FROM_UNIXTIME(UNIX_TIMESTAMP())(你的情況),你正在使用

0

您可以使用WHERE子句中的條件,其蜂巢的版本:

(((unix_timestamp(usage_dt,'yyyy-MM-dd')) >= (unix_timestamp(date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd') ,8),'yyyy-MM-dd'))) and ((unix_timestamp(usage_dt,'yyyy-MM-dd')) >= (unix_timestamp(date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd') ,2),'yyyy-MM-dd')))) 

這裏usage_dt是你的日期列名和日期格式在蜂巢作爲「YYYY-MM-DD」的格式,所以如果你是havig你可以爲在這裏提及任何其他格式YYYYMMDD是的customr格式心情。