Mysql 关于修改 “时间” 时报错Incorrect datetime value: '' for column 'createtime'

在网上找了很多方法总结如下:

1.MySQL驱动版本的问题。这种一般是在mYSQL版本更新了之后才会报错。解决方法在jdbc里添加“&useOldAliasMetadataBehavior=true”

2.可能是datetime的格式问题。    

datetime 以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'TIMESTAMP值不能早于1970或晚于2037
储存  数据库中该字段是timestamp  。

问题MySQL数据库,如果数据库中日期字段为空值时 值为'0000-00-00 00:00:00"时,查询的时候回报:Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP

可能原因分析:'0000-00-00 00:00:00"不在'1000-01-01 00:00:00'到'9999-12-31 23:59:59'范围之内;这时可以把值设置为:null

3.我的问题是同样的SQL语句都是MySQL里插入就可以,但是从Excel里面读取出来再插入就报错。是因为Excel会自动修改datatime的格式,所以需要在Excel中修改掉Excel默认的datetime格式

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当使用MySQL 8,遇到“incorrect datetime value”错误通常是由于以下原因之一引起的: 1. 日期格式错误:MySQL 8对日期和时间的接受格式有严格要求。确保您输入的日期和时间值与MySQL接受的格式匹配。常见的日期和时间格式包括'YYYY-MM-DD'和'YYYY-MM-DD HH:MM:SS'。 2. 非法日期或时间值:再次验证您输入的日期或时间是否合法。例如,2月30日是一个非法的日期,如果输入了这样的值,就会出现错误。 3. 字符串截断:如果您将一个过长的字符串赋值给日期或时间列,MySQL将会报错。确保输入的字符串不要超出日期或时间列的长度限制。 4. 触发器或存储过程问题:有,错误日期和时间值可能与数据库中的触发器或存储过程相关。检查您的数据库中是否有触发器或存储过程,看它们是否会导致错误日期或时间值。 5. 指定了错误的默认值:如果您在创建表为日期或时间列指定了默认值,并且该默认值无效,则会出现错误。在这种情况下,您可以尝试删除默认值或更改为有效的日期或时间值。 对于以上情况,请逐一检查您的数据和数据操作,并根据问题的具体原因进行修正。尽量使用正确的日期和时间格式,并确保输入的值合法。如果仍然无法解决错误,请考虑咨询MySQL官方文档或寻求更高级的技术支持。 ### 回答2: 在MySQL 8中出现"Incorrect datetime value"错误通常表示日期或时间格式不正确。此错误通常出现在以下几种情况下: 1. 日期或时间的格式不符合MySQL的规范。在MySQL中,日期格式必须是'YYYY-MM-DD',时间格式必须是'HH:MM:SS'。如果日期或时间的格式不正确,就会出现该错误。确保你的日期或时间符合MySQL的格式要求。 2. 日期或时间的值超出了MySQL支持的范围。例如,如果你尝试在MySQL中插入一个超过MySQL支持的日期范围的日期,就会出现该错误。确保你的日期或时间值在MySQL支持的范围内。 3. 字符串转换为日期或时间出现错误。如果你使用STR_TO_DATE()函数将字符串转换为日期或时间,但字符串的格式与指定的格式不匹配,就会出现该错误。确保你的字符串和指定的格式匹配。 4. 系统日期或时间设置不正确。如果你的系统日期或时间设置不正确,就会导致MySQL在解析日期或时间出现错误。确保你的系统日期和时间设置正确。 解决"Incorrect datetime value"错误的方法是: 1. 验证日期或时间格式是否正确,遵循MySQL的格式要求。 2. 检查日期或时间的值是否在MySQL支持的范围内。 3. 使用合适的函数(如STR_TO_DATE)将字符串转换为日期或时间,确保字符串和指定的格式匹配。 4. 验证系统的日期和时间设置是否正确。 如果以上方法都不起作用,你可以考虑升级或重新安装MySQL,以确保你使用的是最新版本,并且遵循MySQL的规范和要求。 ### 回答3: MySQL 8 中的 "incorrect datetime value" 错误通常是由于日期或时间数据格式不正确导致的。此错误可能是由以下几个常见原因引起的: 1. 日期或时间格式错误:检查插入或更新语句中的日期或时间值的格式是否正确。日期格式应为 'YYYY-MM-DD',时间格式应为 'HH:MM:SS'。确保没有多余的空格或特殊字符。 2. 无效的日期或时间值:确保插入或更新的日期或时间值是有效的。例如,月份必须在 1 到 12 之间,小必须在 0 到 23 之间。检查日期和时间值是否在合理的范围内。 3. 字符串与日期/时间格式不匹配:如果你尝试将一个字符串转换为日期或时间数据类型,确保字符串与指定的格式完全匹配。如果日期或时间字符串与列的数据类型不匹配,MySQL 将会抛出 "incorrect datetime value" 错误。 4. 日期溢出:检查日期是否超出了日期数据类型的范围。对于日期类型,可接受的范围是从 '1000-01-01' 到 '9999-12-31'。 5. 空值或缺失值:确保没有将空值或未提供的值插入到要求非空的日期或时间列中。如果一个列被定义为非空,并且你没有提供一个有效的日期或时间值,MySQL 将抛出 "incorrect datetime value" 错误。 通过仔细检查和调试你的 SQL 语句,查找并修复日期和时间值的错误,你应该能够解决 "incorrect datetime value" 错误。如果问题仍然存在,可以提供详细的错误消息和相关的代码片段,以便更好地帮助你解决该问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值