我查询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不收集结果。我怎么能解决它?
答案 0 :(得分:1)
当来自Hive的那个人在你当地时区给你一个日期时,presto from_unixtime
会给你一个UTC日期。
根据https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF,from_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)
将时间戳转换为正确的时区。请查看上面提供链接的手册。