我在表格中有一列存储纪元时间。
我想将带有时区的人类可读日期时间戳转换为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
答案 0 :(得分:0)
假设您在rocmetricsolr
类型中有一个列startdatetime
的表varchar
,其中前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
更改时区名称