更新数据库时报错: Data truncation: Incorrect datetime value: '1951-02-08 00:00:00' for column 'birthday' at row 1

作者: java 发布时间: 2023-01-11 浏览: 935 次 编辑

看下我的报错

### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1951-02-08 00:00:00' for column 'birthday' at row 1
; Data truncation: Incorrect datetime value: '1951-02-08 00:00:00' for column 'birthday' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1951-02-08 00:00:00' for column 'birthday' at row 1


网上搜了很多答案,访问量最多的一种是升级mysql-connection-java-jar的版本,但是我的jar已经是最新版本了,于是找其他办法。花了很长时间,最终终于解决。

错误原因:

数据库中时间类型的原因,导致这样的错误.datetime 以YYYY-MM-DD HH:MM:SS格式检索和显示DATETIME值。支持的范围为1000-01-01 00:00:00到9999-12-31 23:59:59 .而TIMESTAMP值支持的范围1970-01-01 08:00:01 到2038-01-19 11:14:07储存,对于TIMESTAMP来说如果不在这个范围就会报这个错。

解决方法:

mysql (birthday字段)时间类型由timestamp改成datetime 就行了。

清不清晰,明不明了