2013-04-23 123 views
0

我需要幫助創建查詢。我有下面的表格。獲取最近一小時的數據

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

我想得到在上個小時有Time的行。我怎樣才能做到這一點?

我試過但沒有工作。

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

請幫幫我。

+1

你是什麼意思_「沒有工作」_?你有錯誤信息嗎? – Kai 2013-04-23 09:30:14

回答

1

問題解決

GET hourfromunix。它發生是因爲unix_timestamp()是在幾秒鐘內發出的,我沒有注意到這一點。更改代碼如下工作。

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

感謝所有。

0

我不認爲有一個功能。

的一種方法是,你必須採取小時從UNIX的shell腳本

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