發現不查所有字段時是可以查詢的,最後一個個字段嘗試,發現是在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