presto from_unixtime函数是对的吗?

时间:2017-07-13 02:07:55

标签: nosql presto

我查询bigint到时间戳,价值是' 1494257400'

我将使用presto查询 但是presto不收集关于from_unixtime()函数的结果。

hive version。

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

presto version。

块引用

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

hive给出了收集结果,但是presto不收集结果。我怎么能解决它?

1 个答案:

答案 0 :(得分:1)

当来自Hive的那个人在你当地时区给你一个日期时,presto from_unixtime会给你一个UTC日期。

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

  

转换unix epoch(1970-01-01 00:00:00)的秒数   UTC)到表示该时刻的时间戳的字符串   当前系统时区的格式为" 1970-01-01 00:00:00"。

Hive的输出不是那么好,因为ISO格式的字符串应该显示GMT数据,如果它们有任何不是GMT + 00的话。

使用Hive,您可以使用to_utc_timestamp({any primitive type} ts, string timezone)将时间戳转换为正确的时区。请查看上面提供链接的手册。