夏令时问题

时间:2016-11-01 07:40:39

标签: mysql datetime timezone dst datetimeoffset

我正在使用带有EDT时区的MySQL。在时移(2016年太阳,3月3日,02:00)。我可以看到这种奇怪的行为,其中mysql忽略了我的2ed条件(下面以粗体显示)。有没有办法解决这个问题..?

mysql> explain select resId,resTimeStamp from RESUME 
        where resTimeStamp >='2016-03-13 1:58:00' && resTimeStamp < '2016-03-13 1:59:00'

行解析= 9

mysql> explain select resId,resTimeStamp from RESUME 
        where resTimeStamp >='2016-03-13 1:59:00' && resTimeStamp < '2016-03-13 02:00:00';
解析

行= 2436217

mysql将以上查询视为解释从RESUME中选择resId,resTimeStamp             其中resTimeStamp&gt; ='2016-03-13 1:59:00'只忽略&amp;&amp; resTimeStamp&lt; '2016-03-13 02:00:00'; 有可能调整mysql考虑2016-03-13 02:00:00到2016-03-13 02:59:59作为2016-03-13 03:00:00

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,这是因为Daylight Saving Time。当你“向前迈进”时,一小时就会失踪。

坦率地说,在可能的情况下,时区是最好避免的噩梦。一般来说,set your database time zone to use UTC最好将所有日期时间存储为UTC。这样可以避免担心时区或夏令时等问题。您可以使用CONVERT_TZ来处理转换,或使用编程语言自己的时区转换功能。