我是 PostgreSQL 的新手,我想知道是否有一种直接的方法可以使用函数将表中的时间戳值转换为不同的时区。在我的例子中,它是 UTC 到 EST。
例如,这些是我需要转换为 EST 的值(不只是一个值,而是表中的所有值)
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
最佳答案
在伦敦,我们目前比 UTC 早 1 小时。所以 - 如果我使用没有时间戳的时区并说它是 UTC,我会为我的本地时区打印它。
richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
timezone
------------------------
2015-10-24 17:38:46+01
(1 row)
但是根据返回的值判断,您想要“EST”,它似乎在美洲的某个地方。如果需要,您可以将表达式包装在一个小的 SQL 函数中。
richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
timezone
---------------------
2015-10-24 11:38:46
(1 row)
编辑:如何在查询中完成
SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;
关于postgresql - 将 postgresql 中的 UTC 时区转换为 EST(本地时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341060/