La función TO_DATE de Oracle

TO_DATE convierte una cadena de texto en una fecha de Oracle usando el formato indicado.

Conversión de texto a fecha con la función TO_DATE de Oracle

Uno de los errores más comunes al trabajar con fechas en Oracle es tratarlas como si fueran simples cadenas de texto. `TO_DATE` sirve para convertir una cadena en un valor de tipo fecha indicando el formato en el que viene escrita.

La idea es sencilla: si recibimos una fecha como texto, Oracle necesita saber qué parte es el día, qué parte es el mes y qué parte es el año.

## Sintaxis

TO_DATE(cadena, formato)

También puede indicarse el idioma usado para nombres de meses o días:

TO_DATE(cadena, formato, 'NLS_DATE_LANGUAGE = idioma')

## Ejemplos básicos

Convertir una fecha escrita como año, mes y día:

SELECT TO_DATE('2026-07-05', 'YYYY-MM-DD') AS fecha
FROM dual;

Convertir una fecha escrita en formato habitual día/mes/año:

SELECT TO_DATE('05/07/2026', 'DD/MM/YYYY') AS fecha
FROM dual;

Convertir una fecha con hora y minuto:

SELECT TO_DATE('05-07-2026 14:30', 'DD-MM-YYYY HH24:MI') AS fecha
FROM dual;

## Meses escritos con letras

Si la cadena contiene el mes en texto, conviene indicar el idioma para evitar errores según la configuración de la sesión:

SELECT TO_DATE(
  '05-JUL-2026',
  'DD-MON-YYYY',
  'NLS_DATE_LANGUAGE = American'
) AS fecha
FROM dual;

## Diferencia entre `YY` y `RR`

En fechas antiguas o datos heredados puede aparecer el año con dos dígitos. En esos casos, `RR` ayuda a interpretar el siglo de forma compatible con datos antiguos:

SELECT TO_DATE('05-JUL-26', 'DD-MON-RR', 'NLS_DATE_LANGUAGE = American') AS fecha
FROM dual;

Para datos nuevos, siempre que sea posible, es mejor guardar o recibir el año con cuatro dígitos usando `YYYY`.

## Notas prácticas

– `TO_DATE` convierte texto a fecha; no debe usarse para comparar fechas convirtiéndolas antes a texto.
– El formato debe coincidir con la cadena recibida.
– Para mostrar una fecha como texto se usa `TO_CHAR`, no `TO_DATE`.
– Para ver más máscaras disponibles, se puede consultar la entrada de formatos de fechas en Oracle.

## Entradas relacionadas

Formatos de fechas en Oracle
La función TO_CHAR de Oracle

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *