En Oracle Database, podemos usar el TH
elemento de formato para agregar el sufijo del número ordinal al resultado de un TO_CHAR()
operación al formatear fechas.
Por ejemplo, en lugar de generar 10 Feb
podríamos generar 10 Feb
. O, en lugar de generar 21 century
, podemos generar 21st century
. Lo mismo se aplica a los componentes de fecha deletreados. Por ejemplo, en lugar de Twenty One
, podemos generar Twenty One
.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT TO_CHAR(DATE '2030-12-01', 'Ddth Month')
FROM DUAL;
Resultado:
01st December
Podemos usar el fm
modificador de formato para eliminar el cero inicial si es necesario:
SELECT TO_CHAR(DATE '2030-12-01', 'fmDdth Month')
FROM DUAL;
Resultado:
1st December
Tenga en cuenta que las mayúsculas del número ordinal están determinadas por el elemento de formato relevante (en este caso, el Dd
parte), no el TH
sufijo.
Esto es lo que sucede cuando cambiamos la segunda d
a mayúsculas:
SELECT TO_CHAR(DATE '2030-12-01', 'fmDDth Month')
FROM DUAL;
Resultado:
1st December
Entonces, aunque proporcionamos el th
sufijo en minúsculas, no tuvo efecto en el resultado. El uso de mayúsculas fue determinado por el elemento de formato (sin incluir el fm
modificador de formato).
También podemos agregar el número ordinal al devolver otros componentes de la fecha, como el siglo:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;
Resultado:
21st Century
Fechas deletreadas
Podemos agregar el SP
elemento de formato para tener la parte de la fecha deletreada:
SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;
Resultado:
21st Century
Y podemos usar mayúsculas según sea necesario:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;
Resultado:
21st Century
Esto es lo que sucede cuando omitimos TH
especificador de formato:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;
Resultado:
Twenty-One