Tôi cố gắng để thực hiện truy vấn của mình thông qua Java như thế này:ORA-01.830: Ngày định dạng hình ảnh kết thúc trước khi chuyển đổi toàn bộ chuỗi đầu vào/Chọn sum nơi ngày truy vấn
public ResultSet execSumStatment2() throws SQLException{
String query = "Select SUM(A) as NCCSeptember from NCC where Datum >= '01-09-2013 00:00:00' and Datum <= '30-09-2013 23:59:59'";
return execStatement(query);
}
Sau đó, tôi gọi execSumStatement trong lớp:
sql.execSumStatement2() ;
Khi tôi chạy nó tôi nhận được thông báo lỗi sau:
java.sql.SQLDataException: ORA-01.830: ngày định dạng hình ảnh kết thúc trước khi chuyển đổi toàn bộ chuỗi đầu vào
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
at com.bachelorarbeit.SQLExecutor.execStatement(SQLExecutor.java:20)
at com.bachelorarbeit.SQLExecutor.execSumStatment2(SQLExecutor.java:56)
at com.bachelorarbeit.Test.doGet(Test.java:63)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Khi tôi thực hiện cùng một truy vấn trong SQL Developer nó hoạt động tốt. Tôi đã thực hiện tìm kiếm trên internet, và tôi đoán vấn đề là kiểu dữ liệu của ngày trong truy vấn, nên là Ngày, nhưng mọi thứ tôi đã thử không hoạt động ...
Tôi là người mới bắt đầu lập trình để nó sẽ tuyệt vời nếu bạn có thể giải thích nó càng đơn giản càng tốt! Cảm ơn trước!
Định dạng cho ngày tháng (tùy chọn thứ hai) không chính xác.Nó phải là 'yyyy-mm-dd' (' ngày '2013-09-01''). Hơn nữa, khi so sánh ngày, hãy xem xét phần thời gian của một ngày. –
@NicholasKrasnov: - Cảm ơn bạn đã cập nhật! Cập nhật câu trả lời của tôi là tốt! –
Tôi vừa thử giải pháp đầu tiên và nó đã hoạt động! Nếu tôi thay đổi các thiết lập của datestamp thành "DD/MM/RRRR HH24: MI: SS" trong SQL Developer để thêm thời gian và thay đổi thứ tự của tháng và ngày, nên "to_date ('26/11/2013 14:34 : 45 ',' dd/mm/yyyy hh24: mm: ss ') "hoạt động? PS: Cảm ơn rất nhiều về câu trả lời nhanh! – user3036627