to_date() toma su parámetro de cadena, lo compara con el formato que proporciona en el segundo parámetro y construye un campo de fecha a partir de él. El campo de fecha no usa el formato que proporcionó en el segundo parámetro; de hecho, se almacenará usando alguna representación de datos interna que no tiene ningún formato (un número, con toda probabilidad).
Para volver a presentar un formato en los resultados de un campo de fecha, puede:
- Haga que el cliente que ejecuta la consulta configure los parámetros NLS (a nivel de sesión) para proporcionar un formato localizado, con
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
declaración), o - Utilice
to_char(..., 'YYYY-MM-DD')
alrededor de su campo existente para volver a convertir la fecha en una cadena con el formato que desee. Donde reemplazas...
con su definición de columna actual en la selección.
El enfoque n. ° 1 ya está sucediendo, ya que habrá un conjunto NLS_DATE_FORMAT que está produciendo el formato actual, pero tiene un formato que no desea, por lo que si puede controlarlo y cambiarlo allí, puede hacerlo así. camino. Si no puede y debe tener el formato de otra manera consistente, entonces el #2 podría ser el camino a seguir.