ora-01830:la mascara de formato de fecha termina antes de convertir toda la cadena de entr
Hola a todos,
Tengo un problema al lanzar una queri que contiene un to_date.
El caso es que en un procedimiento hago un alter session para cambiar el formato de fecha y despues de realizar una serie de operaciones hago un select que contiene un to_date. Cuando ejecuto esta select me da el error 'ora-01830:la mascara de formato de fecha termina antes de convertir toda la cadena de entrada'.
Como puedo solucionarlo??
Tengo un problema al lanzar una queri que contiene un to_date.
El caso es que en un procedimiento hago un alter session para cambiar el formato de fecha y despues de realizar una serie de operaciones hago un select que contiene un to_date. Cuando ejecuto esta select me da el error 'ora-01830:la mascara de formato de fecha termina antes de convertir toda la cadena de entrada'.
Como puedo solucionarlo??
antes de que alguien me de la solucion de poner to_char, ya adelanto que no me vale porque necesito ordenar el resultado por este campo, y el orden que utiliza para un campo char es distinto que el de un date.
gracias
gracias
Pues haz dos cosas :
1-) Ponnos el ALTER SESSION que haces
2-) Ponnos la select que te peta
1-) Ponnos el ALTER SESSION que haces
2-) Ponnos la select que te peta
gracias por el interes, pero ya lo he consguido solucionar. Por si te interesa, lo que me preguntabas seria algo asi
DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''DD/MM/YY HH24:MI:SS''');
y la select es muy larga pero como ejemplo podria valer algo como esto
SELECT SUM(EJECUCIONES),TO_DATE(DIA,'DD/MM/YY') DIA FROM TABLA GROUP BY TO_DATE(DIA,'DD/MM/YY')
El caso es que la solucion era poner en la select en lugar del to_date, un trunc(dia) sin mas y asi me da el formato que yo quiero y no me da problemas.
Gracias por el interes.
Un saludo.
DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''DD/MM/YY HH24:MI:SS''');
y la select es muy larga pero como ejemplo podria valer algo como esto
SELECT SUM(EJECUCIONES),TO_DATE(DIA,'DD/MM/YY') DIA FROM TABLA GROUP BY TO_DATE(DIA,'DD/MM/YY')
El caso es que la solucion era poner en la select en lugar del to_date, un trunc(dia) sin mas y asi me da el formato que yo quiero y no me da problemas.
Gracias por el interes.
Un saludo.
De nada.
Una cosa, ten mucho ojito con esto :
('NLS_DATE_FORMAT','''DD/MM/YY HH24:MI:SS''');
Puede darte problemas
Cambialo por
('NLS_DATE_FORMAT','''DD/MM/RR HH24:MI:SS''');
Una cosa, ten mucho ojito con esto :
('NLS_DATE_FORMAT','''DD/MM/YY HH24:MI:SS''');
Puede darte problemas
Cambialo por
('NLS_DATE_FORMAT','''DD/MM/RR HH24:MI:SS''');
El formato RR que establece que si los dos dígitos indicados son inferior a 50 se compone con los dos primeros dígitos del año de SYSDATE, pero si es superior a 50 con los dos primeros dígitos del año de SYSDATE menos uno. Así en el año actual las fechas estarían comprendidas entre 1951 y 2050.