众所周知, MySQL 中有多处表示日期的数据类型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。当只记录年信息的时候,可以只使用 YEAR 类型。
每一个类型都有合法的取值范围,当指定确定不合法的值时,系统将“零”值插入数据库中。
下表中列出了 MySQL 中的日期与时间类型。
由于我在存储 生日 字段的时候,数据库不恰当的选取了 timestamp 字段,所以在我的生日字段在小于 1980 的时候就会报错:
java.sql.BatchUpdateException: Data truncation: Incorrect datetime value: '1968-02-14 00:00:00.0' for column 'birthday' at row 1
MySQL 中 生日字段改为 DATE 类型就好了