获取最后一小时的数据

时间:2013-04-23 09:28:34

标签: hive

我需要有关创建查询的帮助。我有下表。

Name(String) | Capacity(String) | Time(BIGINT)

我希望在过去一小时内获得Time的行。我怎么能这样做?

我试过以下但没有工作。

select * 
from table1 
where Time > (unix_timestamp() - 60*60*1000);

请帮帮我。

2 个答案:

答案 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

获取hourfromunix
Hive -hiveconf onehourago=$hourfromunix -f filename.hql