1. 程式人生 > >從資料庫讀取日期型資料的錯誤記錄:argument type mismatch

從資料庫讀取日期型資料的錯誤記錄:argument type mismatch

當我從資料庫查詢一條帶有日期型欄位的資料時,報了這個錯誤:

        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~