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

Capitalización de nombres de días y meses al formatear fechas en Oracle

Al obtener el nombre del día y/o mes de una fecha en Oracle, es posible que desee devolverlo en mayúsculas, minúsculas o título.

Afortunadamente, esto es fácil de hacer. El resultado refleja la capitalización de su modelo de formato.

Ejemplo

Al usar TO_CHAR() para devolver partes de fecha de un valor de fecha, utiliza uno o más elementos de formato para producir un modelo de formato. Este modelo de formato determina cómo se formatea la fecha cuando se devuelve.

Podemos usar el DAY y MONTH elementos de formato para devolver el nombre del día y el nombre del mes respectivamente.

Pero lo que es más importante, las mayúsculas que usamos para estos elementos de formato determinan la capitalización del resultado.

Ejemplo:

SELECT 
    TO_CHAR( DATE '2037-12-03', 'month' ) AS "month",
    TO_CHAR( DATE '2037-12-03', 'Month' ) AS "Month",
    TO_CHAR( DATE '2037-12-03', 'MONTH' ) AS "MONTH"
FROM DUAL;

Resultado:

       month        Month        MONTH 
____________ ____________ ____________ 
december     December     DECEMBER    

Es lo mismo para el DAY elemento de formato:

SELECT 
    TO_CHAR( DATE '2037-12-03', 'day' ) AS "day",
    TO_CHAR( DATE '2037-12-03', 'Day' ) AS "Day",
    TO_CHAR( DATE '2037-12-03', 'DAY' ) AS "DAY"
FROM DUAL;

Resultado:

         day          Day          DAY 
____________ ____________ ____________ 
thursday     Thursday     THURSDAY     

También se aplica al devolver la versión abreviada del día o mes.

Ejemplo:

SELECT 
    TO_CHAR( DATE '2037-12-03', 'mon' ) AS "mon",
    TO_CHAR( DATE '2037-12-03', 'Mon' ) AS "Mon",
    TO_CHAR( DATE '2037-12-03', 'MON' ) AS "MON"
FROM DUAL;

Resultado:

   mon    Mon    MON 
______ ______ ______ 
dec    Dec    DEC   

Y:

SELECT 
    TO_CHAR( DATE '2037-12-03', 'dy' ) AS "dy",
    TO_CHAR( DATE '2037-12-03', 'Dy' ) AS "Dy",
    TO_CHAR( DATE '2037-12-03', 'DY' ) AS "DY"
FROM DUAL;

Resultado:

    dy     Dy     DY 
______ ______ ______ 
thu    Thu    THU   

El año

Quizás un hecho menos conocido es que Oracle Database también proporciona elementos de formato que devuelven el año completo explicado. Específicamente, YEAR y YEAR (para atender o antes de las fechas BC).

El uso de mayúsculas de estos elementos de formato también afecta la salida:

SELECT 
    TO_CHAR( DATE '2037-12-03', 'year' ) AS "year",
    TO_CHAR( DATE '2037-12-03', 'Year' ) AS "Year",
    TO_CHAR( DATE '2037-12-03', 'YEAR' ) AS "YEAR"
FROM DUAL;

Resultado:

                  year                   Year                   YEAR 
______________________ ______________________ ______________________ 
twenty thirty-seven    Twenty Thirty-Seven    TWENTY THIRTY-SEVEN    

Y:

SELECT 
    TO_CHAR( DATE '-2037-12-03', 'syear' ) AS "syear",
    TO_CHAR( DATE '-2037-12-03', 'Syear' ) AS "Syear",
    TO_CHAR( DATE '-2037-12-03', 'SYEAR' ) AS "SYEAR"
FROM DUAL;

Resultado:

                  syear                   Syear                   SYEAR 
_______________________ _______________________ _______________________ 
-twenty thirty-seven    -Twenty Thirty-Seven    -TWENTY THIRTY-SEVEN   

Al aplicar mayúsculas y minúsculas con el Syear elemento de formato, debemos recordar que solo el primer carácter, el S carácter:está en mayúsculas y todos los caracteres restantes están en minúsculas (incluido el Y carácter):