Hive systate()/current_date()在HQL中不工作

Hive systate()/current_date()在HQL中不工作,hive,hql,hue,Hive,Hql,Hue,在HQl中执行此操作时,我得到 java sql异常:错误10011-函数sysdate()无效。正在为当前日期获取相同的 WHERE TO_DATE (CONCAT(year,'-',month,'-',day)) >= sysdate()-8 AND TO_DATE (CONCAT(year,'-',month,'-',day)) <= sysdate()-2 WHERE TO_DATE(CONCAT(年、月、日))>=sysdate()-8 从hive 1.2.0开始,您可以

在HQl中执行此操作时,我得到

java sql异常:错误10011-函数sysdate()无效。正在为当前日期获取相同的

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

从hive 1.2.0开始,您可以使用
当前日期()
,在以前的版本中,可以使用
=DATE\u sub(from\u unixtime(unix\u timestamp()),8)
f.i.

您应该能够使用unix\u timestamp()/from\u unixtime(unix\u timestamp())(在您的情况下)无论您使用的是哪个版本的hive,都可以使用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是日期的列名,配置单元中的DateFormat用作“yyyy-MM-dd”格式,因此如果您使用的是任何其他格式,您可以在此处提及,因为yyyyymmdd是sate的customr格式