從資料庫讀取日期型資料的錯誤記錄:argument type mismatch
阿新 • • 發佈:2018-12-30
當我從資料庫查詢一條帶有日期型欄位的資料時,報了這個錯誤:
java.lang.IllegalArgumentException: argument type mismatch
這是因為從資料庫取出來是date型別的值,而我卻用String型別的物件去接的,所以就出現了引數格式不匹配的錯誤。
解決辦法:
將資料庫的查詢語句中關於日期查詢的欄位,例:資料庫型別為date型別的mdate,改成to_char(mdate,'yyyy/MM/dd HH24:mm:ss') 。其中yyyy/MM/dd表示年月日的格式,而HH24:mm:ss則表示二十四小時制的時、分、秒。
但是到這裡還不夠,取出來是不會報錯了,但是取出來是個NULL。這因為轉型之後,查詢出來的欄位名就變成了to_char(mdate,'yyyy/MM/dd HH24:mm:ss') (可以去資料庫看一下),這個時候我再去用mdate這個欄位名去取值是取不到任何值的,所以還需要最後一步,重新命名。
即,將原來的欄位重新命名為:to_char(mdate,'yyyy/MM/dd HH24:mm:ss') as mdate,這樣再以mdate取值就不會出錯也不會是NULL值了。
總而言之,解決過程非常簡單,只需要修改一下查詢語句就行啦,over~