闰秒的问题

闰秒由来

原子钟和平均太阳日之间需要定期同步, 同步的方式就是闰秒.
闰秒有正负之分, 目前为止出现的都是正闰秒.
正闰秒是增加1s, 如(2017-01-01 07:59:59, 2017-01-01 07:59:60, 2017-01-01 08:00:00)
负闰秒是跳过1s, 如(xxxx-xx-xx 07:59:58, xxxx-xx-xx 08:00:00)

PHP


mysql

mysql5.1.50 -- 插入的59:60的数据会变成00:00

mysql>CREATE TABLE `tmp2` (
`f2` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
mysql>insert into tmp2(f2) values('2017-01-01 07:59:59');
mysql>insert into tmp2(f2) values('2017-01-01 07:59:60');
mysql>insert into tmp2(f2) values('2017-01-01 08:00:00');
mysql>select * from tmp2;
+---------------------+
| f2                  |
+---------------------+
| 2017-01-01 07:59:59 |
| 0000-00-00 00:00:00 |
| 2017-01-01 08:00:00 |
+---------------------+

mysql5.5 -- 可以插入59:60, 但是查询不会返回

linux内核

Linux2.6.18-164版本以下, 处理闰秒会挂, 会导致Linux内核Crash, 需要升级内核版本

Ref:

小心程序中的时间(时间调整/闰秒)
http://su1216.iteye.com/blog/1575662
mysql timezone leap seconds
http://dev.mysql.com/doc/refman/5.5/en/time-zone-leap-seconds.html
闰秒背景与数据库处理
https://yq.aliyun.com/articles/68260

你可能感兴趣的:(闰秒的问题)