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 sí |
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";