我尝试将时区从本地格式转换为 UTC,除了在一种情况下工作正常。在转换当天 (27.03 02:00:00) 并且仅在从 GMT+1 到 GMT+2 时。
(转换返回时间为 30.10 03:00:00)
好的 ->
SELECT CONVERT_TZ('2016-03-27 01:59:59','Europe/Vienna','UTC');
格林威治标准时间 +1 = 00:59:59
BUG ->SELECT CONVERT_TZ('2016-03-27 02:00:01','Europe/Vienna','UTC');
格林威治标准时间 +2 = 01:00:00
这里出现了错误,从 02:00:00 转换到 02:59:59 时,小时没有转换并且每个给定的分钟和秒都被忽略......
这意味着:
02:00:00 -> 01:00:00
02:00:01 -> 01:00:00
02:59:59 -> 01:00:00
在 03:00:00 转换再次正常...
OK -> SELECT CONVERT_TZ('2016-03-27 03:00:00','Europe/Vienna','UTC');
GMT +2 = 01:00:00
对此错误有任何想法或经验吗?