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