(1292, “Incorrect datetime value: ‘‘ for column ‘firstOnlineTime‘ at row 1)

1292 - Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘firstOnlineTime’ at row 1

根据报错查找到插入mysql的csv文件的最后一条数据有缺失,本该对应datatime的字段里面是空的,因为mysql5.7之后默认不允许datatime类型的字段为空,所以会报错。

官方文档上说明MySQL允许将
’0000-00-00’保存为“伪日期”,但是MySQL有一个NO_ZERO_DATE SQL模式,这是mysql5.7版本以后出现的(具体是版本问题引起的),这个模式默认是打开的,不允许产生伪日期,所以要关掉这个选项。执行SQL语句:

select @@global.sql_mode ,可以看到NO_ZERO_DATE SQL,然后执行SET GLOBAL sql_mode = ‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;

然后执行show variables like ‘%sql_mode%’; 来查看是否存在查看关于sql_mode的变量,如果没有NO_ZERO_IN_DATE和NO_ZERO_DATE就说明修改成功,最后一定要记得net start mysql,刷新你的表和数据库,然后就可以解决了。

直接上命令:

select @@global.sql_mode
SET GLOBAL sql_mode = ‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;
show variables like ‘%sql_mode%’;
net start mysql

参考:https://www.cnblogs.com/11120511cmd/p/12428030.html

猜你喜欢

转载自blog.csdn.net/msq16021/article/details/111149937