Postgresql stores timezone information in TIMESTAMP WITH TIMEZONE?
我试图理解PostgreSQL如何处理TIMESTAMP WITH TIMEZONE类型,并且我遇到了理论与实践之间的差异。
根据文档和其他堆栈溢出帖子,
For timestamp with time zone, the internally stored value is always in UTC ... When a timestamp with time zone value is output, it is always converted from UTC to the current timezone zone.
我相信这意味着任何给定SELECT语句中的所有时间戳都将位于相同/当前时区中。 但是,这就是我所看到的:
interview_timestamp是TIMESTAMP WITH TIMEZONE。 这让我大吃一惊。
奇怪的是,你有时会看到时区偏移,有时候没有,我会责怪你正在使用的GUI。 尝试使用
抵消“ -05:44:38” 是完全正常的,因为时区是在19世纪后期引入的,在此之前使用了当地的太阳时。
仅仅为了记录,这真的是一个客户的事情,因为UTC的偏移取决于一年中的时间(EDT:-4,EST:-5)。 偏移"-05:44:38"也是正确的,这在1883年之前的EDT / EST的TZ数据库中被抵消。