2016-01-11 171 views
0

我需要從當前時間獲取7毫秒的時間間隔的時間戳,以毫秒爲單位。我使用now()嘗試了date_sub,但沒有爲我工作。我們如何在蜂巢中執行此操作。我需要的查詢時間間隔current_timestamp(unix)和7天的時間間隔。還有什麼規定可以選擇像UTC + 5:30這樣的時區?Hive查詢語言時間戳

回答

1

我無法找到有關HIVE中基於毫秒的時間計算的信息。

unix_timestamp()是當前時間戳,但它沒有毫秒。

偏移爲7天* 24小時/天* 3600秒/小時= 604800毫秒

所以當前時間的時間戳加上7天將UNIX_TIMESTAMP()+ 604800

的UTC部分更棘手;你可以使用to_utc_timestamp,給它你計算的時間戳,以及它來自的時區(作爲日期)。它會返回一個日期字符串,你會穿越UNIX_TIMESTAMP()

換句話說,假設它是從PST來了,你應該使用:

select unix_timestamp(to_utc_timestamp(from_unixtime(unix_timestamp() + 604800), 'PST')) from dual; 

在這裏看到的文檔:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF