更新数据库时报错:Data truncation: Incorrect datetime value:

错误如下:

Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1970-01-01 08:00:00.0' for column 'begin_time' at row 1
### The error may involve com.stylefeng.guns.rest.common.persistence.dao.MoocUserTMapper.updateById-Inline
### The error occurred while setting parameters
### SQL: UPDATE mooc_user_t  SET nick_name=?,  user_sex=?,  birthday=?,  email=?,  user_phone=?,  address=?,    biography=?,  life_state=?,  begin_time=?,  update_time=?  WHERE UUID=?
### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1970-01-01 08:00:00.0' for column 'begin_time' at row 1
; ]; Data truncation: Incorrect datetime value: '1970-01-01 08:00:00.0' for column 'begin_time' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1970-01-01 08:00:00.0' for column 'begin_time' at row 1
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	at com.sun.proxy.$Proxy93.update(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:294)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)

网上搜了很多答案,访问量最多的一种是升级mysql-connection-java-jar的版本,但是我的jar已经是最新版本了,于是找其他办法。花了很长时间,最终终于解决。
        错误原因:数据库中时间类型的原因,导致这样的错误.datetimeYYYY-MM-DD HH:MM:SS格式检索和显示DATETIME值。支持的范围为1000-01-01 00:00:009999-12-31 23:59:59 .而TIMESTAMP值支持的范围1970-01-01 08:00:012038-01-19 11:14:07储存,对于TIMESTAMP来说如果不在这个范围就会报这个错。
        解决方法mysql时间类型由timestamp改成datetime 就行了。

  • 37
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: 这个错误通常是因为您正在尝试将一个错误格式的日期或间值插入到数据库中。请确保您的日期或间值的格式与数据库表定义的格式相匹配。您可以使用DATE_FORMAT函数将日期或间值转换为正确的格式,以便将其插入到数据库中。另外,请确保您输入的日期或间值是有效的日期或间,例如,对于日期值,确保月份不超过12,日期值小于等于当月的最大日期等等。 ### 回答2: data truncation: incorrect datetime value数据库中常见的错误之一,通常是由于间格式不正确而导致的。 在数据库中,每个间都有一个特定的格式,在插入数据,如果将数据格式与数据库中已有的格式不匹配,就会发生数据截断错误。例如,如果我们将一个日期间值存储在VARCHAR列中,那么当我们尝试将一个非日期间字符串存储到该列中,就会出现数据截断错误。 除了数据格式不正确,还有一些其他的原因,例如区问题、日期格式不正确、或者数据库中存在无效的日期、间值等。 解决这个问题的方法是要保证插入的数据格式正确,并且与数据库中的数据格式相同。我们可以在插入数据之前进行格式验证,确保要插入的数据是有效的,或者使用数据转换函数来将数据转换为数据库中支持的格式。 另外,我们还可以通过调整数据库的日期间格式,来避免数据截断错误。比如,将数据库的日期格式改为YYYY-MM-DD HH:MI:SS,然后再插入数据,这样就能避免数据截断错误发生。 总之,数据截断错误通常是由于间格式不正确而导致的,我们需要在插入数据之前进行格式检查,并确保插入的数据与数据库中的数据格式相同,以避免这个问题的发生。 ### 回答3: “数据截断:错误的日期间值”是一个在数据库中经常出现的错误。此错误常常是由于尝试将一个不符合要求的日期间值存储到数据库中而引起。 在数据库中,日期间的格式和精度是非常严格的。如果要插入、更新或查询一个日期间字段,该字段的值必须严格按照数据库格式要求来编写。否则就会发生“数据截断:错误的日期间值”的错误。 通常,这种错误会在以下情况下出现: 1. 数据库中设置的日期间格式不对:在MySQL数据库中,日期间格式是由年、月、日、、分、秒等组成的。如果尝试存储不符合该格式的日期间值,则会发生“数据截断:错误的日期间值”的错误。 2. 日期间的值太长:有,日期间值可能会包含太多的数字和字符,从而超过了数据库中定义的精度。这就需要将日期间值截短到数据库中定义的长度以避免出现错误。 3. 数据库中定义的日期间类型不匹配:在MySQL数据库中,有几种不同类型的日期间字段,如DATE、TIME、DATETIME等。如果在操作数据库,使用的字段类型不匹配,则会发生“数据截断:错误的日期间值”的错误。 总之,“数据截断:错误的日期间值”的错误可能会导致数据在存储、更新或查询出现问题。因此,在使用数据库,应当遵循数据库的日期间格式和精度要求,以避免该错误的发生。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值