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