解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1

出现场景

MySQL版本是5.7,执行一条MySQL插入命令时,出现以下错误:

mysql> INSERT INTO `mds_site` VALUES ('0', '*', '默认站点', '*', '1', '', '0000-00-00 00:00:00');
ERROR 1292 (22007): Incorrect datetime value: '0000-00-00 00:00:00' for column 'create_time' at row 1

解决方案

错误提示为不正确的datetime值,明明格式是对的,为什么不行呢。

我们先查看建表语句,create_time字段类型为datetime

mysql> show create table mds_site;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                    |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mds_site | CREATE TABLE `mds_site` (
  `id` varchar(64) NOT NULL,
  `site` varchar(255) NOT NULL,
  `site_description` varchar(255) DEFAULT NULL,
  `site_name` varchar(255) NOT NULL,
  `status` int(1) DEFAULT NULL COMMENT '-1不可用,1可用',
  `create_user` varchar(255) NOT NULL,
  `create_time` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8       |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

通过查询MySQL 5.7的文档得知,5.7以后默认情况不能插入无效的日期格式0000-00-00。所以我们只需要插入有效的日期即可。

mysql> INSERT INTO `mds_site` VALUES ('0', '*', '默认站点', '*', '1', '', now());
Query OK, 1 row affected (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值