Prestosql将UTC时间戳转换为本地?

问题描述 投票:1回答:1

如何在Prestosql中将包含日期和时间的时间戳字段转换为本地时间?字段看起来像

Region ID  |         Start Time utc       |       End Time utc
abc           2019-04-26 20:00:00.000   2019-04-26 23:00:00.000
cdx           2019-02-27 23:30:00.000   2019-02-28 01:00:00.000

我有Region IDS所以如果我需要或者如果它更容易我可以在查询中输入我需要该行的时区的ID。

我想返回该时区的本地开始和结束时间。

查询是

SELECT table1.*
FROM table1
WHERE table1.day = date '2019-04-03' AND
     NOT EXISTS (SELECT 1
                 FROM table2
                 WHERE table1.id = table2.id AND
                       table1.timestamp >= table2.start_time AND
                       table1.timestamp <= table2.end_time
                 )

表2是我想要转换为当地时间的开始和结束时间...

如果utc时间在开始和结束时间的not exists子句中,我将如何将其更改为本地时间?并非所有时代都是美国同样的时区?我可以使用区域ID字段将该区域ID链接到时区我可以使用吗?

sql data-science timestamp-with-timezone datetime-conversion presto
1个回答
0
投票

来自presto's documentation

SELECT timestamp '2012-10-31 01:00 UTC' AT TIME ZONE 'America/Los_Angeles';

2012-10-30 18:00:00.000 America/Los_Angeles

由于您当前的时间戳已经是UTC,您可以添加时间戳的位置并获得所需的结果。

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.