Chr*_*ian 3 mysql timezone timestamp unix-timestamp
在MySQL中尝试处理unix时间戳时,我发现了一些奇怪的东西.我注意到在转换为任意日期的unix时间戳时,介于'00:59:59'和'01:00:00'之间的时间超过1秒.深入挖掘我有以下示例查询,结果我不明白:
SELECT FROM_UNIXTIME(1382835600) AS a, FROM_UNIXTIME(1382832000) AS b;
+---------------------+---------------------+
| a | b |
+---------------------+---------------------+
| 2013-10-27 01:00:00 | 2013-10-27 01:00:00 |
+---------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
两个unix时间戳相距1小时(3600秒),但生成的时间戳相同.也许这是一个时区问题,但它毕竟是在同一台服务器上.
支撑你自己,冬天来了......
这是由于从夏令时到冬令时的过程,取决于您的时区(请参阅此链接).
2013年,Octobre 27th是我们来到冬季的那一天(至少欧洲国家).凌晨03点,小时变为凌晨02点,这解释了为什么你有两个不同时间戳的相同小时.
[FROM_UNIXTIME]返回unix_timestamp参数[...]的表示形式.该值以当前时区表示.
如果我计算得好,你就是在GMT时间工作.
几小时后再试一次,你会发现一切正常:
SELECT FROM_UNIXTIME(1382839200) AS a, FROM_UNIXTIME(1382842800) AS b;
Run Code Online (Sandbox Code Playgroud)