sql >> Base de Datos >  >> RDS >> Oracle

Cómo quitar el relleno derecho en el nombre del día en Oracle

En Oracle Database, cuando se usa TO_CHAR() función para devolver el nombre del día a partir de una fecha, se agregará relleno al nombre del día si es más corto que el nombre de día válido más largo para el idioma y el calendario dados.

Bueno, ese es el comportamiento predeterminado. Sin embargo, puede cambiar esto si lo desea.

Para suprimir este relleno, todo lo que necesita hacer es anteponer el elemento de formato de nombre de día con fm .

Ejemplo

Supongamos que ejecutamos el siguiente código:

SELECT 
    TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;

Resultado:

Friday   , 08 March     2030

Podemos ver que se agregaron espacios finales al nombre del día y al nombre del mes.

Podemos usar el fm modificador de formato para suprimir este espacio:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;

Resultado:

Friday, 8 March 2030

Problema resuelto.

Tenga en cuenta que esto también tuvo el beneficio adicional de suprimir los espacios finales del nombre del mes.

También suprimió el cero inicial del número del día.

Podemos usar múltiples fm modificadores para ser más específicos sobre qué relleno queremos suprimir. Cada fm en nuestro modelo de formato, activa y desactiva el modo de llenado.

Supongamos que queremos suprimir los espacios finales de los nombres de día y mes, pero queremos conservar el cero inicial en el número de día. En ese caso podemos hacer lo siguiente:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;

Resultado:

Friday   , 08 March     2030

La razón por la que usamos un tercer fm (delante de MONTH ) es porque el segundo fm se volvió a habilitar el relleno para todos los elementos de formato posteriores, lo que daría como resultado que los espacios finales se conservaran durante el mes.

Esto es lo que quiero decir:

SELECT 
    TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;

Resultado:

Friday   , 08 March     2030

En este caso, se suprimió el relleno del nombre del día y luego se volvió a habilitar para el número del día, el mes y el año.

Afortunadamente, podemos agregar tantos fm modificadores que necesitemos para obtener el resultado deseado.