【问题标题】:Postgresql stores timezone information in TIMESTAMP WITH TIMEZONE?Postgresql 在 TIMESTAMP WITH TIMEZONE 中存储时区信息?
【发布时间】:2017-05-23 01:16:35
【问题描述】:

我试图了解 PostgreSQL 如何处理 TIMESTAMP WITH TIMEZONE 类型,但我遇到了理论与实践之间的差异。

根据文档和其他堆栈溢出帖子,

对于带时区的时间戳,内部存储的值始终为 UTC ... 输出带时区值的时间戳时,始终从 UTC 转换为当前时区。

我相信这意味着任何给定 SELECT 语句中的所有时间戳都将位于相同/当前时区。但是,这就是我所看到的:

interview_timestamp 是 TIMESTAMP WITH TIMEZONE。这让我大吃一惊。

【问题讨论】:

标签: postgresql timestamp postgresql-9.4 timestamp-with-timezone


【解决方案1】:

奇怪的是,您有时会看到时区偏移,有时却看不到,我会将此归咎于您使用的 GUI。试试psql,看看那里的数据是什么样的。

偏移量“-05:44:38”是完全正常的,因为time zones 是在 19 世纪后期引入的,并且在此之前使用的是当地太阳时。

【讨论】:

    【解决方案2】:

    仅作记录,这实际上是客户的事情,因为与 UTC 的偏移取决于一年中的时间(EDT:-4,EST:-5)。偏移量“-05:44:38”也是正确的,这是 TZ 数据库中 1883 年之前 EDT/EST 的偏移量。

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 2012-06-21
      • 2017-05-27
      • 2016-04-21
      • 2010-10-09
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多