Datetime 如何在以时区为IST的presto中将历元时间转换为人类可读的日期
我在表中有一列存储历元时间 我想将其转换为人类可读的日期时间戳,时区为IST。我使用下面的查询,但转换不正确,它显示的是上一次05:30Datetime 如何在以时区为IST的presto中将历元时间转换为人类可读的日期,datetime,timezone,presto,Datetime,Timezone,Presto,我在表中有一列存储历元时间 我想将其转换为人类可读的日期时间戳,时区为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 lim
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
,在varchar
类型中有列startdatetime
,其中前10位表示历元时间戳:
选择
来自时区“美国/洛杉矶”的_unixtime(CAST(substr(startdatetime,1,10)为bigint))
注意:请根据更改时区名称。如果是固定的,则很容易执行您想要的操作。10或9由于substr不准确,963865200823和1155657969480给出了错误的结果