記一次 Mysql 日期使用不當造成的 bug

PostTruth發表於2020-11-27

眾所周知, 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 型別就好了

相關文章