Oracle/PLSQL: función TO_CHAR

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: función TO_CHAR

Este tutorial de Oracle explica cómo usar Oracle/PLSQL Función TO_CHAR Con sintaxis y ejemplos.

describir

La función Oracle/PLSQL TO_CHAR convierte un número o una fecha en una cadena.

sintaxis

La sintaxis de la función TO_CHAR en Oracle/PLSQL es:

TO_CHAR( value [, format_mask] [, nls_language] )

parámetro o parámetro

valor es un número o fecha que se convertirá en una cadena. format_mask Opcional. Este es el formato utilizado para convertir el valor en una cadena. nls_language Opcional. Este es el lenguaje nls para convertir valores en cadenas.

devolver los bienes

La función TO_CHAR devuelve un valor de cadena.

aplicar para

La función TO_CHAR está disponible en las siguientes versiones de Oracle/PLSQL:

  • Oráculo 12c, Oráculo 11g, Oráculo 10g, Oráculo 9i, Oráculo 8i

ejemplo

Veamos algunos ejemplos de la función TO_CHAR de Oracle y exploremos cómo usar la función TO_CHAR en Oracle/PLSQL.

Ejemplo numérico

Por ejemplo:

El siguiente es un ejemplo numérico de la función TO_CHAR.

TO_CHAR(1210.73, '9999.9')
Result: ' 1210.7'

TO_CHAR(-1210.73, '9999.9')
Result: '-1210.7'

TO_CHAR(1210.73, '9,999.99')
Result: ' 1,210.73'

TO_CHAR(1210.73, '$9,999.00')
Result: ' $1,210.73'

TO_CHAR(21, '000099')
Result: ' 000021'

Ejemplo de fecha

La siguiente es una lista de argumentos válidos cuando se utiliza la función TO_CHAR para convertir fechas en cadenas. Estos parámetros se pueden utilizar en varias combinaciones.

Alcance explique
año año, detalles
todos los años año de 4 dígitos
todos los años
AA
Los últimos 3, 2 o 1 dígitos del año.
todos los años
año
Una generación
Los últimos 3, 2 o 1 dígitos del año ISO.
todos los años Año de 4 dígitos basado en el estándar ISO
preguntar Trimestre del año (1, 2, 3, 4; ENE-MAR = 1).
milímetro Mes (01-12; ENE=01).
lunes Nombre abreviado del mes.
Luna Nombre del mes, relleno con espacios, 9 caracteres de largo.
RM Mes en números romanos (I-XII; ENE = I).
World Wide Web La semana del año (1-53), donde la semana 1 comienza el primer día del año y continúa hasta el séptimo día del año.
W Número de semana (1-5) del mes, donde la semana 1 comienza el primer día del mes y finaliza el séptimo día.
guerra de información Semana del año (1-52 o 1-53) según las normas ISO.
D Día de la semana (1-7).
día nombre de la fecha
DD El día del mes (1-31).
DDD El día del año (1-366).
DY Nombre abreviado de la fecha.
j Día de Juliano; el número de días desde el 1 de enero de 4712 a.
alto Hora del día (1-12).
HH12 Hora del día (1-12).
HH24 Hora del día (0-23).
infarto de miocardio minutos (0-59).
SS Segundo (0-59).
SSSS Segundos después de la medianoche (0-86399).
franco Fracciones de segundo.

El siguiente es un ejemplo de una fecha para la función TO_CHAR.

TO_CHAR(sysdate, 'yyyy/mm/dd')
Result: '2003/07/09'

TO_CHAR(sysdate, 'Month DD, YYYY')
Result: 'July 09, 2003'

TO_CHAR(sysdate, 'FMMonth DD, YYYY')
Result: 'July 9, 2003'

TO_CHAR(sysdate, 'MON DDth, YYYY')
Result: 'JUL 09TH, 2003'

TO_CHAR(sysdate, 'FMMON DDth, YYYY')
Result: 'JUL 9TH, 2003'

TO_CHAR(sysdate, 'FMMon ddth, YYYY')
Result: 'Jul 9th, 2003'

Notará que en algunos ejemplos de la función TO_CHAR, el parámetro format_mask comienza con “FM”. Esto significa que se suprimen los ceros y los espacios en blanco. Esto se puede ver en el siguiente ejemplo.

TO_CHAR(sysdate, 'FMMonth DD, YYYY')
Result: 'July 9, 2003'

TO_CHAR(sysdate, 'FMMON DDth, YYYY')
Result: 'JUL 9TH, 2003'

TO_CHAR(sysdate, 'FMMon ddth, YYYY')
Result: 'Jul 9th, 2003'

Se ha suprimido el cero, por lo que la parte del día se muestra como “9” en lugar de “09”.

Preguntas frecuentes

Pregunta: ¿Por qué no ordenar por día de la semana?

SELECT ename, hiredate, TO_CHAR((hiredate),'fmDay') "Day"
FROM emp
ORDER BY "Day";

Respuesta: En el SQL anterior, la máscara de formato fmDay utilizada en la función TO_CHAR devolverá el nombre de la fecha, no el valor numérico de la fecha.

Para ordenar los días de la semana secuencialmente, debe usar la máscara de formato fmD para devolver el valor del día, así:

SELECT ename, hiredate, TO_CHAR((hiredate),'fmD') "Day"
FROM emp
ORDER BY "Day";
(Visited 17 times, 1 visits today)