3

该SQL:奇怪时区

select to_timestamp(extract(epoch from '0001-01-01 00:00:00'::timestamp)) 

产生这样的输出:

0001-01-01 08:06:00 + 08:06

我意识到to_timestamp()总是会在时区中添加一个时区,因此会增加8小时和+8。但:06是什么?额外的6分钟从哪里来?

编辑

如果我最初执行set local timezone to 'UTC';然后我得到预期的结果。

+0

只能用于古代约会吗?1812年左右呢? –

+0

1812年,同样的问题。 +6分钟和​​08:06时区。 – IamIC

+0

这似乎发生在1900年前的所有日期。 – IamIC

回答

2

在UTC发明之前,每个城市都有自己的当地时间,大多数时间彼此之间的差异只有几分钟。

就在时区的标准化(以及所有人都相应采用)之后,当地时代被设定为我们今天所知的价值观。

这就是为什么你特别1900年

其实之前得到古日期这些奇怪的结果,从台北仅UTC+08:06Jan 1st of 1896改为UTC+08:00,所以之前的日期将有+08:06偏移。

如果您将您的时区设置为UTC,则不会发生这种情况,这基本上是因为UTC的偏移量为零并且永远不会更改。

+1

哇!这真的很有趣。谢谢。 – IamIC