我有一组 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 time zone '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:46 2016-01-19 18:27:00 | 2016-01-19 13: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
关于sql - UTC时间对应的本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59743989/