为什么在mysql convert_tz中同时切换两个时区的顺序有所不同?

时间:2016-09-29 17:37:25

标签: mysql timezone convert-tz

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

这将返回' 2020-07-01 00:29:59'这很奇怪,因为EST和委内瑞拉实际上是同一时间。

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

这将返回' 2020-06-30 23:59:59'这很有道理。

为什么第一个查询没有返回正确的时间,而第二个查询没有?

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

观察到的行为的最可能解释是不正确或过时的time_zone信息。

对于委内瑞拉的卡拉库斯

从'2007-12-01'到'2016-06-01',时区偏移是UTC-04:30

从2016-06-01开始,时区偏移为UTC-04:00

我们不知道MySQL时区表是从服务器上的zoneinfo文件加载还是从下载的软件包加载。

但无论如何,它是由CONVERT_TZ函数使用的mysql数据库中的时区表中的信息。