toda to_date texto termina ora máscara hora formato fecha entrada ejemplos dar convertir cambiar cadena antes oracle date select ora-01830

oracle - to_date - ORA-01830: la imagen del formato de fecha finaliza antes de convertir toda la cadena de entrada/Seleccionar suma donde la consulta de fecha



ora-01830: la máscara de formato de fecha termina antes de convertir toda la cadena de entrada (5)

Creo que no deberías confiar en la conversión implícita. Es una mala practica

En cambio, deberías intentarlo así:

datenum >= to_date(''11/26/2013'',''mm/dd/yyyy'')

o como

datenum >= date ''2013-09-01''

Estoy intentando ejecutar mi consulta a través de Java de esta manera:

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); }

Luego llamo a execSumStatement en la clase:

sql.execSumStatement2 () ;

Cuando lo ejecuto recibo el siguiente mensaje de error:

java.sql.SQLDataException: ORA-01830: la imagen del formato de fecha finaliza antes de convertir toda la cadena de entrada

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)

Cuando ejecuto la misma consulta en SQL Developer, funciona bien. Ya hice una búsqueda en Internet, y creo que el problema es el tipo de datos de la fecha en la consulta, que debería ser Fecha, pero todo lo que probé no funcionó ...

¡Soy un principiante en programación, así que sería fantástico si pudieras explicarlo de la manera más simple posible! ¡Gracias por adelantado!


En SQL Developer ... vaya a Preferences -> NLS -> y cambie el formato de su fecha de acuerdo


Lo que ha escrito en su cadena sql es una Timestamp Date y Timestamp no la Date . Debe convertirlo a la Date o cambiar el tipo de campo de la base de datos a Timestamp para que se vea correctamente.



Puedes usar

Select to_date(''08/15/2017 12:00:00 AM'',''MM/DD/YYYY HH:MI:SS AM'') from dual;

Si lo está usando en un SP, entonces su tipo de datos variables debe ser Varchar2

y también en su código ado.net el tipo de datos de su parámetro de entrada debe ser

OracleDbType.Varchar2

Básicamente tuve que poner un filtro DateFrom y DateTo en mi SP, así que pasé las fechas como String en él.

Nota: Esta es una de las soluciones que funcionó para mí, podría haber más soluciones a este problema.