如何将纪元时间转换为人类可读日期,并将时区作为 IST



我在表中有一列存储纪元时间。

我想将其转换为人类可读的日期时间戳,时区为 IST。我正在使用以下查询,但转换不正确,它上次显示 05:30。

presto:default> select to_char(date_trunc('hour',
from_unixtime((CAST(substr(startdatetime,1,10) AS double )))),
'dd-mm-yyyy hh24'),startdatetime FROM rocmetricsolr limit 10;

_col0     | startdatetime 
---------------+---------------
NULL          | NULL          
21-05-2018 23 | 1526905879116 
21-05-2018 23 | 1526905879116 
21-05-2018 23 | 1526905874892 
NULL          | NULL          
21-05-2018 23 | 1526905876216 
21-05-2018 23 | 1526905876216 
21-05-2018 23 | 1526905873640 
21-05-2018 23 | 1526905873640 
21-05-2018 23 | 1526905903110

假设您有一个表rocmetricsolr,其中列startdatetimevarchar类型,其中前 10 位数字表示纪元时间戳:

SELECT from_unixtime(CAST(substr(startdatetime,1,10) AS bigint)) AT TIME ZONE 'America/Los_Angeles'

注意:请根据 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 更改时区名称

最新更新