前言
之前部署项目到测试服进行测试出现过一次此问题,然后当时挺忙的,没有顾得上看这个问题,时隔多日这个问题又出来了,终于让我腾出手来探究它。说是研究,好像是一个很大的问题,等到一语惊醒梦中人才发现是自己学艺不精。
问题描述
数据库字段end_date
为timestamp
类型 我发现更新到2038年份的日期就会报错 报错信息如下:
Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ‘2038-02-25 15:09:03’ for column ‘end_date’ at row 1
The error may involve UsersMapper.UpdateCodes-Inline
The error occurred while setting parameters
SQL:
UPDATE users set codes=?,end_date=date_add(IFNULL(end_date,NOW()), interval ? DAY),type=1,begin_date=NOW() WHERE id=?
Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ‘2038-02-25 15:09:03’ for column ‘end_date’ at row 1
解决方案
还是大佬一眼看出问题:</