Función TO_CHAR en Oracle

La función TO_CHAR en Oracle es una herramienta fundamental para formatear datos en las consultas SQL. Permite convertir valores de tipo DATE, TIMESTAMP o incluso numéricos en cadenas de texto aplicando un formato específico a través de una máscara de salida. Esto la convierte en una opción imprescindible para personalizar cómo se muestran fechas, horas o números en informes y aplicaciones.

La función TO_CHAR es altamente flexible y permite usar máscaras de formato para adaptar la salida según las necesidades. Por ejemplo, puedes mostrar una fecha en el formato DD-MM-YYYY o convertir una marca de tiempo en una representación más legible como HH:MI AM. También es útil para operaciones con datos numéricos, como añadir separadores de miles o símbolos de moneda.

En este artículo, primero mostraré la sintaxis básica de la función, explicando cómo definir las máscaras de formato. Luego, incluiré ejemplos prácticos para mostrar cómo manejar distintas situaciones, como la generación de reportes personalizados o la preparación de datos para exportaciones.

Si quieres explorar más detalles técnicos, puedes consultar la documentación oficial de ORACLE sobre TO_CHAR.

Sintaxis

Escribe la siguiente sintaxis para utilizar la función TO_CHAR en Oracle:

TO_CHAR(fecha [, formato] [, lenguaje]);

En la sintaxis anterior:

  • fecha: campo de fecha o intervalo
  • formato: mascara de salida (opcional)
  • lenguaje: determina en que idioma se van a mostrar, por ejemplo, los nombres de los meses.

Ejemplos

En el siguiente ejemplo convertimos la fecha del sistema en cadena de texto con la mascara YYYY-MM-DD

SELECT
  TO_CHAR( sysdate, 'YYYY-MM-DD' )
FROM
  dual;

Para convertir la fecha actual del sistema en una cadena de fecha larga, utilice el formato de fecha DL de la siguiente forma:

SELECT
  TO_CHAR( sysdate, 'DL' )
FROM
  dual;

Si quieres mostrar los nombres en otro idioma, utiliza la siguiente forma:

SELECT
  TO_CHAR( sysdate, 'DL') IDIOMA_POR_DEFECTO,
  TO_CHAR( sysdate, 'DL' , 'NLS_DATE_LANGUAGE = SPANISH') IDIOMA_MODIFICADO
FROM
  dual;

Escribir un comentario