我有一组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查询?
假设utc_date
是没有时区的时间戳,您可以这样做:
select
utc_date,
utc_date at time zone 'utc' at time zone 'cdt' cdt_date
from mytable
逻辑是首先指示Postgres时间戳在utc
中,然后将其转换为目标时区。
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