2017-07-13 493 views
0

我做一個關於BIGINT到時間戳和值查詢,「1494257400」presto from_unixtime函數是正確的?

我會用急查詢 但急不收集FROM_UNIXTIME()函數的結果。

配置單元版本。

select from_unixtime(1494257400) result : '2017-05-09 00:30:00'

急版本。

塊引用

select from_unixtime(1494257400) result : '2017-05-08 08:30:00'

蜂巢給對方付費的結果,但急不收集結果。我如何解決它?

回答

1

當您從Hive獲得您當地時區的日期時,presto from_unixtime會返回UTC的日期。

根據https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDFfrom_unixtime

的秒數轉換從Unix紀元(1970-01-01 00:00:00 UTC )到表示該時刻在 的時間戳的字符串當前系統時區格式爲「1970-01-01 00:00:00」。

Hive的輸出不是很好,因爲ISO格式的字符串應該顯示格林威治標準時間數據,如果他們有任何不是GMT + 00。

使用Hive,您可以使用to_utc_timestamp({any primitive type} ts, string timezone)將您的時間戳轉換爲適當的時區。看看上面提供鏈接的手冊。

+0

thx ...我明白了。 但我不知道我怎麼可以改變一個查詢接收相同的結果..; _; .. 你會給我一個樣本presto查詢? –

+1

我更新了我的答案 – Fabien

+0

to_utc_timestamp,這是不presto function..right? –