Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Capitalização de nomes de dia e mês ao formatar datas no Oracle


Ao obter o nome do dia e/ou mês de uma data no Oracle, convém devolvê-lo em maiúsculas, minúsculas ou maiúsculas.

Felizmente, isso é fácil de fazer. O resultado reflete a capitalização do seu modelo de formato.

Exemplo


Ao usar TO_CHAR() para retornar partes de data de um valor de data, use um ou mais elementos de formato para produzir um modelo de formato. Este modelo de formato determina como a data é formatada quando é retornada.

Podemos usar o DAY e MONTH elementos de formato para retornar o nome do dia e o nome do mês, respectivamente.

Mas o mais importante é que a capitalização que usamos para esses elementos de formato determina a capitalização do resultado.

Exemplo:
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    

É o mesmo para o 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     

Também se aplica ao retornar a versão abreviada do dia ou mês.

Exemplo:
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   

E:
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   

O ano


Talvez um fato menos conhecido é que o Oracle Database também fornece elementos de formato que retornam o ano completo. Especificamente, YEAR e YEAR (para atender ou datas pré BC).

A capitalização desses elementos de formato também afeta a saída:
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    

E:
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   

Ao aplicar maiúsculas e minúsculas com o Syear elemento de formato, precisamos lembrar que apenas o primeiro caractere - o S caractere – está em letras maiúsculas e todos os caracteres restantes são em letras minúsculas (incluindo o Y personagem):