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

这篇具有很好参考价值的文章主要介绍了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再将字段改回日期类型。经过验证此方法不会丢失字段的值。这个方法对于系统影响最小,需要的系统权限也最小。文章来源地址https://www.toymoban.com/news/detail-531051.html

到了这里,关于MySQL 报错 incorrect datetime value ‘0000-00-00 00:00:00‘ for column的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】报错 Incorrect string value: ‘\xE5\xA4\xA9\xE5\x96\x9C‘ for column的解决方法

    在向数据库中插入中文时遇到报错 Incorrect string value: \\\'xE5xA4xA9xE5x96x9C\\\' for column ,此时为数据库的编码格式有问题,可以按照如下方法修改 使用 show create table 表名 查看数据库表信息: 可以看到此时的数据库编码格式为 latin 输入以下sql语句将某一字段的 字符集和校验规则

    2024年02月22日
    浏览(30)
  • docker 报错 error: invalid character ‘\x00‘ looking for beginning of value

    执行docker build的时候报错:error: invalid character ‘x00’ looking for beginning of value。 环境: Docker version 20.10.17, build 100c701 windows docker desktop 4.10.1 WSL2 解决办法:https://github.com/docker/for-win/issues/12561 导致报错的原因是 meta.json 损坏,被写入了零值。 https://docs.docker.com/desktop/release-no

    2024年02月15日
    浏览(45)
  • NVIDIA显卡BUG解决 Unable to determine the device handle for GPU 0000:02:00.0: Unknown Error

    实验室去年到今年断了几次电,然后服务器上的2080Ti一直就感觉有点小毛病。属于是被折磨了几个月了。 然后前两周断电后,显卡就基本上完全用不了了,经常服务器开机都会失败。并且 就算服务器开机成功过后,没有几分钟显卡就会自己关掉 刚刚开机一切都很正常 但是没

    2024年02月03日
    浏览(57)
  • mysql插入数据时报错:Incorrect string value:‘\xF0\x9F\x98\x84‘ for column xx

    Incorrect string value:‘xF0x9Fx98x84’ for column xx 这个问题是由于mysql的编码问题引起的,正常的汉字一般不会超过3个字节,数据中存在emoj表情等特殊字符,这对应UTF-8编码格式中的4字节编码,所以报错。 解决方案: 1)使用utf8mb4数据类型 如果MySql版本低于5.5.3,首先要进行版本

    2024年02月13日
    浏览(33)
  • SQL执行报错Incorrect string value: ‘\xF0\x9F\x98\x81\xF0\x9F...‘ for column ‘XXX‘ at row 1...

    分享一个数据库执行插入和修改语句可能会出现的bug Incorrect string value: ‘xF0x9Fx98x81xF0x9F…’ for column ‘name’ at row 1… 再来看下实际项目中服务器报错打印的日志 数据库某字段设置的是 utf8字符集 ,在执行插入或修改语句时该字段传入的值是 非utf8格式(表情或特殊字符

    2024年02月07日
    浏览(55)
  • 关于 Qt中的QString内容存在\u0000使用QChart(0x00)消除 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131860574 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)   做gps时,部

    2024年02月16日
    浏览(25)
  • linux下lspci查看到的设备的device name 0000:03:00.0中冒号分隔开的各数字表示的是什么?

    在 Linux 中,PCI 设备的设备名称(Device Name)通常以 \\\"domain:bus:slot:function\\\" 的形式来表示,其中冒号分隔开的各个数字具有以下含义: domain :表示 PCI 设备所在的 PCI 域(Domain),通常为一个 16 位的十六进制数,用于区分不同的 PCI 域。在大多数情况下,这个值为 0000。 bus :表

    2024年02月12日
    浏览(27)
  • elasticsearch 报错: No value specified for terms query

    java调用es查询数据,提示错误: .No value specified for terms query 报错原因就是: 构造termsQuery查询条件的时候,比如:下边构造了一个null进去,就会报错。

    2024年02月13日
    浏览(34)
  • mysql数据库运行sql:datetime(0) NULL DEFAULT NULL报错【杭州多测师_王sir】

    一、错误信息 二、解决方法 问题发现是第三行,那就是datetime字段,在网上查询是mysql版本时间字段不能设置为0。给一个默认值,直接删除 (0) NULL

    2024年02月10日
    浏览(34)
  • 前端页面报错(Cannot use ‘in‘ operator to search for ‘value‘ in undefined)

    问题示例:Cannot use \\\'in\\\' operator to search for \\\'username\\\' in {\\\"uid\\\":1,\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"$2a$10$2zYH..Q3317nAJyQshN/iu9z.hzARVTblk3If42mWQMCNZIhFWaxm\\\",\\\"gender\\\":\\\"1\\\",\\\"image\\\":\\\"/\\\",\\\"telephone\\\":\\\"15039465258\\\",\\\"balance\\\":null,\\\"email\\\":\\\"\\\",\\\"isDeleted\\\":0,\\\"gmtCreate\\\":\\\"2022-12-13T01:23:54.000+0000\\\",\\\"gmtModified\\\":\\\"2022-12-13T01:24:01.000+0000\\\",\\\"code\\\":null

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包