我需要有关创建查询的帮助。我有下表。
Name(String) | Capacity(String) | Time(BIGINT)
我希望在过去一小时内获得Time
的行。我怎么能这样做?
我试过以下但没有工作。
select *
from table1
where Time > (unix_timestamp() - 60*60*1000);
请帮帮我。
答案 0 :(得分:3)
问题解决了。之所以发生这种情况是因为unix_timestamp()是以秒为单位给出的,我没有注意到。如下更改代码有效。
select *
from table1
where Time > (unix_timestamp()*1000 - 60*60*1000);
谢谢大家。
答案 1 :(得分:1)
我认为没有这方面的功能。
一种方法是,你必须从shell脚本中的unix花费一小时
select *
from table1
where Time > ${hiveconf:onehourago};
将上述代码写入文件
在shell脚本中调用上面的文件,如下所示。
使用date -d "1 hour ago" +%Y%m%d%H%M%S
Hive -hiveconf onehourago=$hourfromunix -f filename.hql