天天看點

Caused by: java.sql.SQLException: ORA-01861: 文字與格式字元串不比對

          項目中遇到這樣一個問題:   

        caused by:java.sql.sqlexception: ora-01861: 文字與格式字元串不比對

atoracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:112)

atoracle.jdbc.driver.t4cttioer.processerror(t4cttioer.java:331)

atoracle.jdbc.driver.t4cttioer.processerror(t4cttioer.java:288)

atoracle.jdbc.driver.t4c8oall.receive(t4c8oall.java:743)

atoracle.jdbc.driver.t4cpreparedstatement.dooall8(t4cpreparedstatement.java:213)

atoracle.jdbc.driver.t4cpreparedstatement.executefordescribe(t4cpreparedstatement.java:796)

atoracle.jdbc.driver.oraclestatement.executemaybedescribe(oraclestatement.java:1031)

atoracle.jdbc.driver.t4cpreparedstatement.executemaybedescribe(t4cpreparedstatement.java:836)

atoracle.jdbc.driver.oraclestatement.doexecutewithtimeout(oraclestatement.java:1124)

atoracle.jdbc.driver.oraclepreparedstatement.executeinternal(oraclepreparedstatement.java:3285)

atoracle.jdbc.driver.oraclepreparedstatement.execute(oraclepreparedstatement.java:3390)

atcom.ibatis.sqlmap.engine.execution.sqlexecutor.executequery(sqlexecutor.java:185)

atcom.ibatis.sqlmap.engine.mapping.statement.mappedstatement.sqlexecutequery(mappedstatement.java:221)

atcom.ibatis.sqlmap.engine.mapping.statement.mappedstatement.executequerywithcallback(mappedstatement.java:189)

...43 more

這個問題的解決方案其實很簡單,但是一開始過于着急,導緻調試時間加長,這是在項目的導出功能中遇到的問題,當輸入開始時間和結束時間進行進階搜尋後需要導出,在導出時顯示空白頁,項目提示這樣的問題,于是我直接從導出開始卻沒有想導出不成功是因為之前輸入的開始時間和結束時間的格式不對,下面是改後的結果:

因為我們的orm是通過mybatis實作的,是以我們看下xml中的sql語句:

這個是改前的時間:

下面是改後的時間格式:

     是以可以看出這個錯誤的原因是将string類型的時間和date類型的時間進行對比,是以就會出現文字與格式字元串不比對的問題。