解决MySQL报错incorrect datetime value '0000-00-00 00:00:00' for column

 更新时间:2023年08月10日 10:32:47   作者:威研威语  
这篇文章主要给大家介绍了关于如何解决MySQL报错incorrect datetime value '0000-00-00 00:00:00' for column的相关资料,文中通过代码示例介绍的非常详细,需要的朋友可以参考下

使用navicat导入数据时报错:

MySQL 报错 incorrect datetime value ‘0000-00-00 00:00:00’ for column

这是因为当前的MySQL不支持datetime为0的情况。

MySQL报incorrect datetime value ‘0000-00-00 00:00:00’ for column错误原因,是由于在MySQL5.7版本以上,默认设置SQL_Mode模式,在模式里有NO_ZERO_DATE,NO_ZERO_IN_DATE,存在表示系统里DATE类型字段不能有0值,所以在执行操作时会报此错误。

解决方案

1、如果具备系统权限那么直接修改my.ini 配置文件,找到sql_mode行,修改为如下重启MySQL即可;如果没有sql_mode行,在my.ini的[mysqld]下添加如下重启MySQL即可:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

2、在没有系统权限,我们有本地库权限情况下如何处理,我们可以使用

SELECT @@sql_mode;

就可以查到当前系统的SQL_mode配置,发现配置里有NO_ZERO_DATE,NO_ZERO_IN_DATE,这时我们使用以下命令,临时设置SQLmode模式,它只对本次会话有效,如果系统刷新后就需要我们重新设置。

SET @@sql_mode = ‘STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER';

3、还有办法,不需要更改系统的SQL_mode模式,可以修改表结构,即将表中的date/datetime字段临时修改为VarChar字段

ALTER TABLE mytemp CHANGE c10 c10 VARCHAR(100) NULL

这时进行数据更新,将‘0000-00-00’ 替换为正常的日期字符串,在使用ALTER 命令修改表字段,这时表中的字段会自动转为日期类型,字段中不能有非法字符,也可以在VarChar类型时将字段设为NULL再将字段改回日期类型。经过验证此方法不会丢失字段的值。这个方法对于系统影响最小,需要的系统权限也最小。

总结

到此这篇关于解决MySQL报错incorrect datetime value '0000-00-00 00:00:00' for column的文章就介绍到这了,更多相关MySQL报错incorrect datetime value内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL Server COALESCE函数详解及实例

    SQL Server COALESCE函数详解及实例

    这篇文章主要介绍了SQL Server COALESCE函数详解及实例的相关资料,COALESCE函数比ISNULL更加强大,这个函数的确非常有用,需要的朋友可以参考下
    2016-12-12
  • 详解mysql基本操作语句命令

    详解mysql基本操作语句命令

    本文介绍了 链接Mysql,以及增删改查等功能,需要的朋友可以参考
    2017-04-04
  • MySQL的慢日志线上问题及优化方案

    MySQL的慢日志线上问题及优化方案

    给大家详细分析了MySQL慢日志线上问题分析及功能优化方案,需要的朋友跟着学习下吧。
    2017-12-12
  • MySQL数据同步Elasticsearch的4种方案

    MySQL数据同步Elasticsearch的4种方案

    本文主要介绍了MySQL数据同步Elasticsearch的4种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • mysql如何查询当前数据库中不为空的表

    mysql如何查询当前数据库中不为空的表

    这篇文章主要介绍了mysql如何查询当前数据库中不为空的表问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • MySQL slave_net_timeout参数解决的一个集群问题案例

    MySQL slave_net_timeout参数解决的一个集群问题案例

    这篇文章主要介绍了MySQL slave_net_timeout参数解决的一个集群问题案例,问题日志请见正文,本文使用slave_net_timeout参数解决了这个问题,需要的朋友可以参考下
    2015-05-05
  • mysql的单列多值存储实例详解

    mysql的单列多值存储实例详解

    数据库市场需要细分,行式数据库不再满足所有的需求,而有很多需求需要,下面这篇文章主要给大家介绍了关于mysql单列多值存储的相关资料,文中通过示例代码介绍介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • win10下mysql 8.0.16 winx64安装配置方法图文教程

    win10下mysql 8.0.16 winx64安装配置方法图文教程

    这篇文章主要为大家详细介绍了win10下mysql 8.0.16 winx64安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Mysql事务索引知识汇总

    Mysql事务索引知识汇总

    这篇文章主要介绍了Mysql事务索引知识汇总,mysql事务是用于处理操作量大、复杂性高的数据,索引能加快数据库的查询速度并高效获取指定的数据,下文相关详细内容,需要的小伙伴可以参考一下
    2022-03-03
  • Windows安装MySQL8.0时的报错汇总及解决方案

    Windows安装MySQL8.0时的报错汇总及解决方案

    据说安装MySQL是无数数据库初学者的噩梦,我在安装的时候也是查了很多资料,但是很多毕竟每个人的电脑有各自不同的情况,大家的报错也不尽相同,所以也是很长时间之后才安装成功,所以本文给大家汇总了Windows安装MySQL8.0时的报错解决方案,需要的朋友可以参考下
    2024-09-09

最新评论