我无法将此日期插入表格2020-03-21
!
我的意思是我可以将20和22设置得很好,但是当我设置21时会失败并显示错误:
错误的日期时间值:“ 2020-03-21 00:00:00”
使用PDO,我得到:
PDOException::(“” SQLSTATE [22007]:无效的日期时间格式:1292错误的日期时间值:'when'在第1行的日期为'2020-03-21 00:00:00')
我真的很困惑,感谢您的帮助!
服务器版本:5.7.26-MySQL社区服务器(GPL)
协议版本:10
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`when` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;
这很好用:
INSERT INTO `test` (`when`) VALUES ('2020-03-20 00:00:00');
这将返回错误:
INSERT INTO `test` (`when`) VALUES ('2020-03-21 00:00:00');
第1行“时间”列的日期时间值不正确:“ 2020-03-21 00:00:00”
使用phpMyAdmin出现相同错误
答案 0 :(得分:0)
@MadhurBhaiya对此发表了评论,
问题是“夏令时”,基本上我的服务器所在时区不存在该时间。
通过将时区更改为UTC(没有夏时制)来解决此问题
另外,请注意,此问题仅在TIMESTAMP
字段中发生(在DATETIME
中没有发生)