【mysql】数据报错: incorrect datetime value ‘0000-00-00 00:00:00‘ for column

一、问题原因

时间字段在导入值'0000-00-00 00:00:00'或者添加 NOT NULL的时间字段时,会往mysql添加0值,此时可能出现此报错。

这是因为当前的MySQL不支持datetime为0,在MySQL5.7版本以上,默认设置sql_mode模式包含NO_ZERO_DATE, NO_ZERO_IN_DATE,表示系统里DATE类型字段不能为0。

二、解决方案

2.1 临时方案,命令行修改,推荐

进入mysql后,执行命令查询当前的模式:

mysql> SELECT @@sql_mode;

就可以查到当前系统的sql_mode配置,比如查询结果为:

发现配置里有NO_ZERO_DATE,NO_ZERO_IN_DATE,这时我们可以临时移除掉为0限制,它只对本次会话有效:

mysql> SET @@sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

再次查询:

 

这个方案推荐的理由是,临时修改不会影响现有的模式和数据安全机制。

2.2 全局方案,修改my.cnf或者my.ini,不推荐

mysql的配置文件,在windows系统中是 my.ini,其余系统为 my.cnf。

这里以centos为例,打开配置文件my.cnf

> vi /etc/my.cnf

如果存在sql_mode,则移除为0限制。

比如本来配置是 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION,则修改为sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION:

如果不存在sql_mode,则从默认配置文件拷贝一个过来,并移除为0限制即可,最终配置如上图所示,在节点mysqld下。

这个方案不推荐的理由是,直接修改了sql_mode模式,允许0值存在。

对于字段,我们尽量做到不为null,如果从业务来说可以为空,则为空时设置默认的时间即可。这样从代码和数据优化来说都比较好理解和操作。

2.3 字段类型转换方案,不推荐

也有网友提供了这个方案,先把字段设置成varchar格式,导入数据或者执行命令后,再把字段转换成date格式:

-- 先把字段 clm_date 转换成varchar
mysql> ALTER TABLE tbl_tmp CHANGE clm_date clm_date VARCHAR(20) NULL;-- 导入数据或者执行相关命令
-- ...-- 再把字段 clm_date 的类型转换回datetime
mysql> ALTER TABLE tbl_tmp CHANGE clm_date clm_date DATETIME NOT NULL;

这里不推荐的理由,一般来说有了第一种方案,也就没必要进行类型转换。有一种情况就是,如果没有权限设置sql_mode,但是可以进行表格的modify,此时这种方案是可行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于UrBAN数据集:用声音监测和预测蜜蜂群体的健康状况

蜜蜂在生态平衡中扮演着关键角色,是农业作物和自然生态系统中的重要传粉者。它们不仅生产蜂蜜和蜂蜡,还对许多水果和种子作物产生影响,包括杏仁、柑橘类水果和蓝莓等。蜜蜂群体的健康状况和数量的下降可能对农业产业产生重大影响。全球范围内…

Python爬取城市空气质量数据

Python爬取城市空气质量数据 一、思路分析1、寻找数据接口2、发送请求3、解析数据4、保存数据二、完整代码一、思路分析 目标数据所在的网站是天气后报网站,网址为:www.tianqihoubao.com,需要采集武汉市近十年每天的空气质量数据。先看一下爬取后的数据情况: 1、寻找数据…

2024全国高考作文题解读(文心一言 4.0版本)

新课标I卷 阅读下面的材料,根据要求写作。(60分) 随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少? 以上材料引发了你怎样的联想和思考?请写…

大模型基础——从零实现一个Transformer(1)

一、Transformer模型架构图 主要模块: embedding层: Input/Output Embedding: 将每个标记(token)转换为对应的向量表示。 Positional Encoding:由于没有时序信息,需要额外加入位置编码。 N个 block堆叠: Multi-Head …

【QT5】<总览四> QT常见绘图、图表及动画

文章目录 前言 一、QFile类读写文件 二、QPainter绘简单图形 三、QChart图表 四、QPropertyAnimation属性动画 五、Q_PROPERTY宏简介 六、自定义属性动画 前言 承接【QT5】<总览三> QT常用控件。若存在版权问题,请联系作者删除&#…

Debezium系列之:记录一次debezium采集tdsql-c数据库数据丢失原因的排查

Debezium系列之:记录一次debezium采集tdsql-c数据库数据丢失原因的排查 一、背景二、排查数据丢失时间段数据采集情况三、捕获提交异常信息四、定位原因五、解决方案一、背景 debezium采集tdsql-c数据库,偶尔会出现数据丢失的情况,出现多次后决定整个链路排查定位问题二、排…

UE5 Mod Support 思路——纯蓝图

原创作者:Chatouille 核心功能 “Get Blueprint Assets”节点,用于加载未来的mod。用基础类BP_Base扩展即可。打包成补丁,放到Content\Paks目录下,即可让游戏访问到内容。 与文中所写不同的地方 5.1或者5.2开始,打…

uniapp封装picker选择器组件,支持关键字查询

CommonPicker.vue组件 路径在 components\CommonPicker.vue <template><view><uni-easyinput v-model"searchQuery" :placeholder"placeholder" /><picker :range"filteredOptions" :range-key"text" v-model&…

【Kubernetes】k8s中,Deployment、Service(svc)和 Pod 之间的关系

在Kubernetes&#xff08;k8s&#xff09;中&#xff0c;Deployment、Service&#xff08;svc&#xff09;和Pod之间的关系是构建、管理和访问容器化应用程序的核心组件。以下是它们之间的关系&#xff0c;以分点表示和归纳的方式描述&#xff1a; Pod&#xff1a; Pod是Kuber…

从零开始:疾控中心实验室装修攻略,让你的实验室一步到位!

在当今充满挑战和变化的世界中&#xff0c;疾病的控制和预防成为了人类生存与发展的重要课题。而疾控中心作为防控疾病的核心机构&#xff0c;其疾控中心实验室设计建设显得尤为重要。下面广州实验室装修公司小编将分享疾控中心实验室设计建设方案&#xff0c;为疾病防控工作提…

如何复制文件描述符

在Linux系统编程中&#xff0c;复制文件描述符是一个常见的操作&#xff0c;通常使用dup或dup2函数来实现。 复制文件描述符的主要原理是创建一个新的文件描述符&#xff0c;该描述符与原始描述符共享相同的文件表项。这意味着它们引用同一个打开的文件&#xff0c;可以进行相…

玩转STM32-通信协议SPI(详细-慢工出细活)

文章目录 一、SPI的基础知识1.1 接口定义1.2 单机和多机通信 二、STM32的SPI工作过程2.1 从选择&#xff08;NSS&#xff09;脚管理2.2 时钟相位与极性2.3 SPI主模式2.4 SPI从模式 三、应用实例 一、SPI的基础知识 1.1 接口定义 SPI系统可直接与各个厂家生产的多种标准外围器…

Python | 开房门(map)

常把map称之为映射&#xff0c;就是将一个元素&#xff08;通常称之为key键&#xff09;与一个相对应的值&#xff08;通常称之为value&#xff09;关联起来 通常用**字典dict**实现了映射这种数据结构 字典也是使用{}来包裹&#xff08;set也是{}&#xff09;&#xff0c;每…

ChatGPT-4o独家揭秘:全国一卷高考语文作文如何轻松斩获满分?

​一、2024年全国一卷高考 二、2018年全国一卷高考 三、2016年全国一卷高考 一、2024年全国一卷高考 技术进步的悖论&#xff1a;我们的问题真的在减少吗&#xff1f; 引言 随着互联网的普及和人工智能的应用&#xff0c;越来越多的问题能够快速得到解答。然而&#xff0c;这引…

网络空间安全数学基础·同余式

6.1 剩余系&#xff08;掌握&#xff09; 6.2 同余式概念与一次同余式&#xff08;熟练&#xff09; 6.3 中国剩余定理&#xff08;熟练&#xff09; 6.1 剩余系 设m是正整数&#xff0c;模m同余的全体整数是一个模m剩余类&#xff0c;即可表示为a qmr&#xff0c; 0≤r<…

idea使用和了解

官网&#xff1a;IntelliJ IDEA – the Leading Java and Kotlin IDE

【MyBatisPlus条件构造器】

文章目录 什么是条件构造器&#xff1f;使用步骤1. 引入 MyBatisPlus 依赖2. 创建实体类3. 使用条件构造器查询4. 执行查询 示例代码 什么是条件构造器&#xff1f; 条件构造器是 MyBatisPlus 提供的一种灵活的查询条件设置方式&#xff0c;它可以帮助开发者构建复杂的查询条件…

持续总结中!2024年面试必问 20 道分布式、微服务面试题(二)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 20 道分布式、微服务面试题&#xff08;一&#xff09;-CSDN博客 三、CAP定理是什么&#xff1f; CAP定理是分布式系统理论中的一个基本概念&#xff0c;由计算机科学家Eric Brewer在2000年提出&#xff0c;并由…

常见的api:Runtime Object

一.Runtiem的成员方法 1.getRuntime() 当前系统的运行环境 2.exit 停止虚拟机 3.avaliableProcessors 获取Cpu线程的参数 4.maxMemory JVM能从系统中获取总内存大小(单位byte) 5.totalMemory JVM已经从系统中获取总内大小(单位byte) 6.freeMemory JVM剩余内存大小(…

数组对象数据修改后页面没有更新,无法进行编辑,校验失效问题

在 Vue 中&#xff0c;当你通过 Object.assign 或其他方式修改了对象中的某个属性时&#xff0c;Vue 并不会触发组件重新渲染&#xff0c;因此表单中的 input 框无法及时更新。这可能导致在修改表单数据后&#xff0c;页面没有更新&#xff0c;而且表单校验也失效的情况。这是因…