我有一个postgres表,其列是带有时区的时间戳。存储的数据以UTC为单位。我想把这个列从UTC转换成不同的时区。如何选择正确的时区,以便在postgres中考虑日光节约?我看过pg_timezone_names视图,并且知道postgres支持的实际缩写。我担心的是,像加利福尼亚这样的州在一年的部分时间里会使用PST和PDT。
我怀疑,像select current_time at time zone 'PDT'或select current_time at time zone 'PST'这样的代码不会给出我全年在加利福尼亚的正确时间。我明白这点了吗?
我知道我可以做一些像select current_time at time zone 'America/New_York'或America/Los_Angeles这样的事情。我希望这样的事情能考虑到白天的节约时间,因为我已经明确地指定了位置。这是处理postgres夏令储蓄问题的唯一正确方法吗?
理想情况下,我不想明确指定位置,我更愿意使用postgres时区缩写。那能办到吗?
发布于 2017-09-19 22:47:14
我和你有同样的问题。我所能提供的最好是指向他们的文档页面,这是我刚刚找到的。姓名文件
视图pg_timezone_names提供了由SET时区识别的时区名称列表,以及它们的相关缩写、UTC偏移量和夏令状态。与pg_timezone_abbrevs中显示的缩写不同,这些名称中有许多都包含了一组夏令转换日期规则。因此,相关信息跨越本地DST边界进行更改。所显示的信息是根据CURRENT_TIMESTAMP的当前值计算的。
我认为这是合理的,也是我们所希望的最好的。遗憾的是,时区缩写并不包括DST规则,我认为因为没有具体的地理区域可以隐含,因此它们只是UTC偏移量的符号。
https://stackoverflow.com/questions/45313981
复制相似问题