2016-03-31 8 views
1

なぜ2016-03-27 02:01:01が無効なタイムスタンプ/ datetime値ですか?mysql 5.7不正なタイムスタンプ値 '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 

答えて

3

タイムゾーンの問題のように思えます。 2016-03-27 02:01:01は、夏時間がヨーロッパで活発になった時でした。 MYSQLはこれに問題があることが知られています - MySQL datetime fields and daylight savings time -- how do I reference the "extra" hour?

+0

はい、それを説明することができますそれを参照してください!しかし、最も驚くべきことは、私はmysqlデータベース(mysqldump)のエクスポートを行い、mysqlを5.7にアップグレードしてから、この(および他の)問題をインポートに持っているということです。だから、これは夏時間のため、私は最初の場所でこの価値を得る方法ですか?私はこれは古いデータベースでチェックされていないと思います。 –

関連する問題