繁体   English   中英

Postgres夏令时区

[英]postgres daylight savings timezone

我有一个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 'PST' select current_time at time zone 'PDT'这样的代码都不会给我全年正确的加利福尼亚州当前时间。 我了解这个权利吗?

我知道我可以select current_time at time zone 'America/New_York'America/Los_Angeles select current_time at time zone 'America/New_York' 我希望类似这样的事情能够将夏令时考虑在内,因为我已经明确指定了位置。 这是解决Postgres中的夏时制问题的唯一正确方法吗?

理想情况下,我不想明确指定位置,而宁愿使用postgres时区缩写。 可以做到吗?

我和你有同样的问题。 我能提供的最好的方法是指向我刚刚找到的他们的文档页面。 pg_timezone_names文档

视图pg_timezone_names提供了SET TIMEZONE可以识别的时区名称列表,以及它们的相关缩写,UTC偏移量和夏时制状态。 与pg_timezone_abbrevs中显示的缩写不同,这些名称中的许多都暗示了一组夏令时过渡日期规则。 因此,关联的信息会在本地DST边界上发生变化。 根据CURRENT_TIMESTAMP的当前值计算显示的信息。

我认为这是有道理的,也是我们可以期望的最好的结果。 不幸的是,时区缩写不包含DST规则,因为无法暗示特定的地理区域,因此它们只是UTC偏移量的符号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM