mysql 5.7不正确的时间戳值'2016-03-27 02:01:01'

时间:2016-03-31 04:26:34

标签: mysql

为什么2016-03-27 02:01:01是无效的时间戳/日期时间值?

mysql> CREATE TABLE table1(time1 TIMESTAMP);
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO table1 VALUES('2016-03-27 01:01:01');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO table1 VALUES('2016-03-27 03:01:01');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO table1 VALUES('2016-03-27 02:01:01');
ERROR 1292 (22007): Incorrect datetime value: '2016-03-27 02:01:01' for column 'time1' at row 1

mysql> SELECT @@sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

mysql> SET sql_mode = 'ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO table1 VALUES('2016-03-27 02:01:01');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql  Ver 14.14 Distrib 5.7.11, for osx10.10 (x86_64) using  EditLine wrapper

1 个答案:

答案 0 :(得分:3)

对我而言似乎是一个时区问题。 2016-03-27 02:01:01是夏令时在欧洲活跃起来的时候。众所周知,MYSQL存在问题 - 请参阅MySQL datetime fields and daylight savings time -- how do I reference the "extra" hour?