解决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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL每日练习之单表查询

    MySQL每日练习之单表查询

    这篇文章主要给大家介绍了关于MySQL每日练习之单表查询的相关资料,数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单查询数据库中存储的数据,还应该根据需要对数据进行筛选,需要的朋友可以参考下
    2023-07-07
  • Mysql通过ibd文件恢复数据的详细步骤

    Mysql通过ibd文件恢复数据的详细步骤

    mysql在使用的过程中,难免遇到数据库表误操作,下面这篇文章主要给大家介绍了关于Mysql通过ibd文件恢复数据的详细步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • MySQL忘记密码恢复密码的实现方法

    MySQL忘记密码恢复密码的实现方法

    流传较广的方法,mysql中文参考手册上的,各位vps主机租用客户和服务器托管用户忘记mysql5.1管理员密码时,可以使用这种方法破解下
    2008-07-07
  • MySql索引提高查询速度常用方法代码示例

    MySql索引提高查询速度常用方法代码示例

    这篇文章主要介绍了MySql索引提高查询速度常用方法代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • MySQL ibdata1文件减肥过程解析

    MySQL ibdata1文件减肥过程解析

    这篇文章主要为大家介绍了MySQL ibdata1文件减肥过程解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • mysql ON DUPLICATE KEY UPDATE语句示例

    mysql ON DUPLICATE KEY UPDATE语句示例

    本文介绍一下关于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法
    2013-11-11
  • MySQL实现乐观锁的方式详解

    MySQL实现乐观锁的方式详解

    在 MySQL 中,可以通过使用乐观锁来实现并发控制,以避免数据冲突和并发更新问题,乐观锁是一种乐观的思想,它假设并发操作不会导致冲突,只有在提交更新时才会检查是否发生冲突,本文给大家介绍了Mysql如何实现乐观锁,需要的朋友可以参考下
    2023-09-09
  • mysql外键(Foreign Key)介绍和创建外键的方法

    mysql外键(Foreign Key)介绍和创建外键的方法

    这篇文章主要介绍了mysql外键(Foreign Key)命令和添加外键方法,需要的朋友可以参考下
    2014-02-02
  • mysql left join的基本用法以及on与where的区别

    mysql left join的基本用法以及on与where的区别

    我们在写sql语句的时候,总是无法避免使用到连接关键词,比如内连接、外连接,下面就是详细的介绍,需要的朋友可以参考下
    2023-05-05
  • MySQL服务自动停止的解决方法

    MySQL服务自动停止的解决方法

    这篇文章主要给大家介绍了MySQL服务自动停止的解决方法,文中给出了详细的解决过程,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06

最新评论