2016-09-29 70 views
1
SELECT CONVERT_TZ('2020-06-30 23:59:59','America/Caracas','US/Eastern'); 

這返回'2020-07-01 00:29:59'這很奇怪,因爲EST和委內瑞拉實際上共享同一時間。爲什麼在convert_tz中同時切換兩個時區的順序會有所作爲?

SELECT CONVERT_TZ('2020-06-30 23:59:59','US/Eastern','America/Caracas'); 

這將返回'2020-06-30 23:59:59',這是非常有意義的。

爲什麼第一個查詢沒有返回正確的時間,而第二個查詢卻沒有返回正確的時間?

有什麼建議嗎?謝謝!

+0

夏令時。當我們/東部時,am/car不遵守DST。 –

+0

那麼它是否應該不會在第二條語句中顯示時間差? – user6655061

+0

@MarcB:2016年,委內瑞拉加拉加斯觀察到一個半小時的時間偏移(+00:30:00),2016-06-01 02:30:00有效。在此之前的最後一次更改是在2007年。對於觀察到的行爲的最可能的解釋是在時區表中令人不快。特別是關於未來的日期。 – spencer7593

回答

0

觀察到的行爲最可能的解釋是錯誤的或過時的time_zone信息。

對於Caracus,委內瑞拉

從 '2007-12-01' 到 '2016年6月1日',時區偏移是UTC-04:30

開始 '2016年6月1日',區偏移量爲UTC-04:00


我們不知道是否MySQL的時區表是從服務器上的時區信息文件加載,或從下載的軟件包。

但無論哪種方式,它都是由正在由CONVERT_TZ函數使用的mysql數據庫的時區表中的信息。

+0

非常感謝!這會解釋它! – user6655061

相關問題