UTC时间的对应本地时间

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

我有一组UTC时间:

UTC_date
-------------------
2015-10-24 16:38:46
2016-01-19 18:27:00
2016-01-24 16:14:34
2016-02-09 23:05:49
2016-02-11 20:46:26

我想知道这些时间的相应本地时间,我在CDT时区,应该比UTC落后5或6小时。这是我需要的结果:

UTC_date                         CDT_date
------------------------------------------------
2015-10-24 16:38:46             2015-10-24 11:38:46
2016-01-19 18:27:00             2016-01-19 12:27:00
2016-01-24 16:14:34             2016-01-24 11:14:34
2016-02-09 23:05:49             2016-02-09 18:05:49
2016-02-11 20:46:26             2016-02-11 15:46:26

我尝试过UTC_date :: timestamp AT时区'CDT',但这会做相反的事情。我可以使用哪种PostgreSQL查询?

sql postgresql date timestamp timestamp-with-timezone
1个回答
0
投票

假设utc_date是没有时区的时间戳,您可以这样做:

select 
    utc_date, 
    utc_date at time zone 'utc' at time zone 'cdt' cdt_date 
from mytable

逻辑是首先指示Postgres时间戳在utc中,然后将其转换为目标时区。

Demo on DB Fiddle

utc_date | cdt_date:------------------ | :------------------2015-10-24 16:38:46 | 2015-10-24 11:38:462016-01-19 18:27:00 | 2016-01-19 13:27:002016-01-24 16:14:34 | 2016-01-24 11:14:342016-02-09 23:05:49 | 2016-02-09 18:05:492016-02-11 20:46:26 | 2016-02-11 15:46:26
© www.soinside.com 2019 - 2024. All rights reserved.