


發現不查所有字段時是可以查詢的,最后一個個字段嘗試,發現是在passwd_time這個字段時有問題,然后看看這個時間
是無效的時間,改成有效時間即可。
相關鏈接:
Mysql 時間 '0000-00-00'異常解決
在spring+mybatis項目中,查詢mysql數據庫遇到一個問題:
java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
分析看了一下原因,應該是mybatis將date類型的字段轉成String類型時,遇到date類型字段為'0000-00-00',轉換不了,所以拋出該異常
在網上查了一下資料:mysql數據庫的date、timestamp等時間類型默認為'0000-00-00'
解決方案1:數據庫連接url增加參數zeroDateTimeBehavior=convertToNull或者round,可以講默認的'0000-00-00'轉換為其他值;
想起之前還碰到過一個問題:以前在DB2中事件類型默認值是’1900-00-00‘,在mysql中卻一直報錯,經查詢發現是mysql的時間類型默認值必須從’1970-00-00‘開始。
另外mysql的時間類型定義時如果不指明為NULL,則默認為not null,產生一個默認值即'0000-00-00'。
所以上面的問題還有兩種解決方案:
解決方案2:定義時間類型時給出默認值,例如 date not null default '1970-00-00';
解決方案3:定義時間類型時默認為null,例如 date null ;
備注:
官網給出timestamp類型默認值default 范圍是 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
在中國,由於時區問題為1970-01-01 08:00:01 to 2038-01-19 11:14:07