【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,此时这种方案是可行的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实验名称:组合数据类型

大家好!欢迎收听你的月亮我的心!我是肖老师!好久不见! 目录 一、实验目的: 二、实验环境: 三、实验步骤: 四、实验结果: 1.已知列表li_one[1,2,1,2,3,5,4,3,5,7,4,7,8],删除列…

解决使用Python检查本地网络中运行的Web服务器的问题

如果我们要检查本地网络中运行的 Web 服务器,可以使用 Python 的 socket 模块来进行网络连接测试。以下是一个简单的示例代码,演示如何检查本地网络中运行的 Web 服务器: 1、问题背景 在学习如何使用 Python 时,一位用户希望编写…

C#的web项目ASP.NET

添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…

开始报名!龙蜥社区系统安全 Meetup 硬核议程发布

在数字化时代,随着云计算、大数据和人工智能等技术的广泛应用,操作系统扮演着关键的角色,成为支撑关键业务和数据的核心基础设施。在这一背景下,操作系统的安全性显得尤为重要,它直接影响着信息系统的稳定运行和持续发…

RocketMQ---Day1

RocketMQ---Day1 1.认识MQ 火车案例: 人就相当于消息 进站口将消息分发给不同的候车厅(主题) 火车将不同候车厅的人拉走(消费不同主题里面的数据) MQ是一种消息中间件。 2.微服务的远程调用 1.同步调用 RPC&am…

(Arkts界面示例)ets pages Demo

Index.ets 文件 import router from ohos.routerEntry//表示该自定义组件为入口组件 Component //表示自定义组件 struct Index {//表示组件中的状态变量,状态变量变化会触发UI刷新State changeValue: string State submitValue: string controller: SearchContr…

04.docker的主要组成部分

docker体验 docker是传统的CS架构分为docker client和docker server,跟mysql一样 查看版本命令:docker version 查看docker下载的是社区版,ce代表社区 rpm -qa |grep docker 查看docker系统命令 docker system docker info(如果要做监控&#xff…

机器视觉开启航空安全新篇章:飞机复合材料检测研究进展,军工材料、智能装备和通信技术全产业链博览会

"精准把控行业标准:机器视觉在飞机垂尾复合材料检测中的应用" 随着航空航天技术的快速发展,飞机制造的质量控制要求越来越高,尤其是对于关键部件如垂尾复合材料零件的缺陷检测。基于机器视觉的检测技术因其非接触、高效率和高精度…

使用 Django Channels 构建实时聊天应用(包含用户认证和消息持久化)

文章目录 准备工作创建 Django 项目创建应用程序配置项目编写 Consumer编写路由创建 URL 路由运行应用用户认证消息持久化显示历史消息结论 Django Channels 是 Django 的一个扩展,允许在 Web 应用中添加实时功能,例如 Websockets、HTTP2 和其他协议。本…

虚拟机安装 RockyLinux为例

目录 一、VMWare、Xshell、Xftp、LinuxISO资料下载 二、VMWare安装 三、创建虚拟机 四、虚拟机安装过程的问题 一、VMWare、Xshell、Xftp、LinuxISO资料下载 链接:百度网盘 请输入提取码 提取码:6666 二、VMWare安装 三、创建虚拟机 四、虚拟机安装…

企业如何利用智能防止截屏保护商业机密

在数字化时代,企业商业机密的保护变得尤为重要。智能防止截屏技术作为一种先进的数据安全手段,能够帮助企业有效防止商业机密的泄露。本文将探讨企业如何利用这一技术保护其宝贵的商业信息。 一、商业机密面临的威胁 商业机密包括但不限于产品设计方案…

微信小程序毕业设计-电影院订票选座系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

基于单片机的八路抢答器设计论文

绪 论1.1 课题研究的相关背景 抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-5…

中间件解析漏洞及Apache解析漏洞原理和复现

Apache漏洞 Apache HTTPD 多后缀解析漏洞 httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立 一个处理请求的子进程或线程的池。 漏洞原理 apache httpd支持一个文件有多个后缀,如:shell.php.d…

【ArcGIS微课1000例】0114:基于DEM地形数据整体抬升或下降高程

相关阅读:【GlobalMapper精品教程】083:基于DEM整体抬升或下降地形高程的两种方式 文章目录 一、任务分析二、栅格计算器简介三、地形整体修改四、注意事项一、任务分析 打开软件,加载配套实验数据中的0112.rar中的dem数据,如下所示,dem的高程范围为256.75~342.37米,现在…

【自然语言处理】文本情感分析

文本情感分析 1 任务目标 1.1 案例简介 情感分析旨在挖掘文本中的主观信息,它是自然语言处理中的经典任务。在本次任务中,我们将在影评文本数据集(Rotten Tomato)上进行情感分析,通过实现课堂讲授的模型方法&#x…

企业数字化转型顶层设计与企业架构TOGAF9.2认证【鉴定级】

什么是TOGAF TOGAF由国际标准权威组织 The Open Group制定。The Open Group于1993年开始应客户要求制定系统架构的标准,在1995年发表The Open Group Architecture Framework (TOGAF) 架构框架。2022年4月25日发布了TOGAF的最新版本10,目前,T…

如何用TCC方案轻松实现分布式事务一致性

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 哈喽,大家好!我是小米,一个热爱技术的活力小青年,今天要和大家分享的是一种在分布式系统中实现事务的一种经典方案——TCC(Try Confirm Canc…

【机器学习】朴素贝叶斯算法及其应用探索

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 朴素贝叶斯算法及其应用探索引言1. 朴素贝叶斯基本概念1.1 贝叶斯定理回顾1.2 朴…

Docker compose 部署Grafana+Prometheus实现java应用JVM监控

这里是小奏,觉得文章不错可以关注公众号小奏技术 背景 最近可能要对一些java应用进行JVM监控,比如一些中间件 实际如果是普通应用比较简单的就是上相对来说重量一点的skywalking、armas 这种监控比较全,啥都有。 当然如果我们要轻量一点只监控JVM就可…