error de Oracle: ORA-01839: fecha no válida para el mes especificado (la fecha del mes especificado no es válida)

Escenas

El valor de la fecha se almacena como una cadena de 10 dígitos, como 2020-02-01, cuando se filtra sql, debe seleccionar el que se encuentra dentro de 1 año.

select * from t_user
where
to_date(app_date ,'yyyy-MM-dd') > sysdate-360
  • 1
  • 2
  • 3

Verifique el registro y encontró un error:
ORA-01839: fecha no válida para el mes especificado

solución

Este problema suele deberse a que la fecha no existe, por lo que el análisis falla.

Si excede el 31, está bien ubicarlo y se informará un error:
el valor del día del mes debe estar entre 1 y el último día del mes.

Pero si está dentro de los 31 días, como los datos del 02-29, está relativamente oculto y es difícil de encontrar, y se informará un error:
la fecha del mes especificado no es válida.

Primero extraigo todas las fechas elegibles y luego las ejecuto en lotes. Si se informa un error, continuaré reduciendo el alcance.

select to_date('2020-07-16','yyyy-MM-dd')  from dual union
select to_date('2020-05-21','yyyy-MM-dd')  from dual union
select to_date('2020-07-16','yyyy-MM-dd')  from dual 
  • 1
  • 2
  • 3

Finalmente se determinó que había una fecha incorrecta, el 31 de junio de 2020. Esta fecha no existe en absoluto y es engañosa.
Simplemente modifíquelo a la fecha correcta.
Por último, no olvide ejecutar las otras fechas para asegurarse de que no haya otras fechas incorrectas.

Supongo que te gusta

Origin blog.csdn.net/hzp666/article/details/113917114
Recomendado
Clasificación