SQLSTATE[22007]:日期时间格式无效:1292 日期时间值不正确:'2019-03-31 01:52:25'
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2019-03-31 01:52:25'
我目前收到来自多个生产数据库的大量错误,我坚持说:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2019-03-31 01:49:45' for column 'created_at' at row 1
这是我的 table:
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| log | varchar(255) | YES | | NULL | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | |
| updated_at | datetime | YES | | NULL | |
+------------+--------------+------+-----+-------------------+----------------+
MySQL版本:
mysql Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using EditLine wrapper
有人可以帮助我了解发生了什么吗?
更新:
我不知道发生了什么,但我从我的错误监视器收到了很多通知,现在一切都恢复正常了,我这边的代码没有任何变化。
错误开始于:2019-03-31 01:00:08
结束于:2019-03-31 01:59:03
更新 2:
好吧,我来自葡萄牙,今天计划将国家时间更改 +1 小时,我完全忘记了...
我怀疑这些错误是由于我的服务器或我的 MySQL 安装与新时间同步滞后造成的。
我会留下这个问题,以防其他人遇到同样的问题
因为当天开始实行夏令时,所以凌晨1点到2点之间的所有时间都是无效的。您会发现问题实际上从“01:00:00”开始并在“01:59:59”结束:
create table t (created_at timestamp null default current_timestamp);
insert into t values('2019-03-31 00:59:59');
insert into t values('2019-03-31 01:00:00');
Incorrect datetime value: '2019-03-31 01:00:00' for column 'created_at' at row 1
insert into t values('2019-03-31 01:59:59');
Incorrect datetime value: '2019-03-31 01:59:59' for column 'created_at' at row 1
insert into t values('2019-03-31 02:00:00');
select * from t
输出:
created_at
2019-03-31 00:59:59
2019-03-31 02:00:00
将您的系统时区更改为没有夏令时的时区将解决问题。
我目前收到来自多个生产数据库的大量错误,我坚持说:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2019-03-31 01:49:45' for column 'created_at' at row 1
这是我的 table:
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| log | varchar(255) | YES | | NULL | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | |
| updated_at | datetime | YES | | NULL | |
+------------+--------------+------+-----+-------------------+----------------+
MySQL版本:
mysql Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using EditLine wrapper
有人可以帮助我了解发生了什么吗?
更新:
我不知道发生了什么,但我从我的错误监视器收到了很多通知,现在一切都恢复正常了,我这边的代码没有任何变化。
错误开始于:2019-03-31 01:00:08
结束于:2019-03-31 01:59:03
更新 2:
好吧,我来自葡萄牙,今天计划将国家时间更改 +1 小时,我完全忘记了...
我怀疑这些错误是由于我的服务器或我的 MySQL 安装与新时间同步滞后造成的。
我会留下这个问题,以防其他人遇到同样的问题
因为当天开始实行夏令时,所以凌晨1点到2点之间的所有时间都是无效的。您会发现问题实际上从“01:00:00”开始并在“01:59:59”结束:
create table t (created_at timestamp null default current_timestamp);
insert into t values('2019-03-31 00:59:59');
insert into t values('2019-03-31 01:00:00');
Incorrect datetime value: '2019-03-31 01:00:00' for column 'created_at' at row 1
insert into t values('2019-03-31 01:59:59');
Incorrect datetime value: '2019-03-31 01:59:59' for column 'created_at' at row 1
insert into t values('2019-03-31 02:00:00');
select * from t
输出:
created_at
2019-03-31 00:59:59
2019-03-31 02:00:00
将您的系统时区更改为没有夏令时的时区将解决问题。