記一次 Mysql 日期使用不當造成的 bug
眾所周知, 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 型別就好了
相關文章
- 避免使用不當pthread_create函式造成記憶體洩露thread函式記憶體洩露
- 記一次Orika使用不當導致的記憶體溢位記憶體溢位
- OGNL設計及使用不當造成的遠端程式碼執行漏洞
- MySQL 記一次 Bug發現過程MySql
- 執行緒池運用不當的一次線上事故執行緒
- MySQL 獲取當前日期及日期格式MySql
- Microsoft.Extensions.DependencyInjection中的Transient依賴注入關係,使用不當會造成記憶體洩漏ROS依賴注入記憶體
- 日常Bug排查-系統失去響應-Redis使用不當Redis
- Executors使用不當引起的記憶體溢位記憶體溢位
- 解Bug之路-記一次對端機器當機後的tcp行為TCP
- javascript中容易造成記憶體洩漏和使用不善的幾個操作JavaScript記憶體
- Jquery對當前日期的操作(格式化當前日期)jQuery
- MySQL Bug導致異常當機的分析流程MySql
- 記一次Lombok的Setter過載方法造成的事故及思考Lombok
- 記錄一次排查log4cxx庫按照日期回滾,不建立新目錄的BUG
- 解Bug之路-記一次JVM堆外記憶體洩露Bug的查詢JVM記憶體洩露
- oracle interval日期函式的bug!Oracle函式
- oracle interval日期函式的bugOracle函式
- MySQL 獲得當前日期時間(以及時間的轉換)MySql
- 記錄一次預釋出環境的 Bug
- mysql中取系統當前時間,當前日期方便查詢判定的程式碼MySql
- 記一次 Redis Cluster 當機引發的事故Redis
- 記一次資料庫索引引起的當機。。。資料庫索引
- 95%的bug是由程式設計師造成的程式設計師
- 記一次 Laravel-Admin 的 Debug 過程Laravel
- 記一次靈異般的 Bug 除錯經歷除錯
- 95% 的 bug 是由程式設計師自己造成的程式設計師
- js如何計算當前日期指定天數前的日期JS
- Redis使用不當導致應用卡死Redis
- 記一次神奇的Mysql死鎖排查MySql
- 記MySQL一次關於In的優化MySql優化
- 記一次解決tomcat自動關閉的bugTomcat
- 解Bug之路-記一次儲存故障的排查過程
- 對自定義函式使用不當的調優案例函式
- SqlServer獲取當前日期SQLServer
- js獲取當前日期JS
- MySQL 當記錄不存在時插入,當記錄存在時更新MySql
- 記一次 MySQL 主從搭建MySql