2017-07-13 15 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? –