Oracle
 sql >> Database >  >> RDS >> Oracle

Maiuscole dei nomi di giorni e mesi durante la formattazione delle date in Oracle

Quando ottieni il nome del giorno e/o del mese da una data in Oracle, potresti voler restituirlo in maiuscolo, minuscolo o titolo.

Fortunatamente, questo è facile da fare. Il risultato riflette la capitalizzazione del tuo modello di formato.

Esempio

Quando si utilizza TO_CHAR() per restituire parti di data da un valore di data, si utilizzano uno o più elementi di formato per produrre un modello di formato. Questo modello di formato determina come viene formattata la data quando viene restituita.

Possiamo usare il DAY e MONTH formattare gli elementi per restituire rispettivamente il nome del giorno e del mese.

Ma soprattutto, le maiuscole che utilizziamo per questi elementi di formato determinano le maiuscole del risultato.

Esempio:

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;

Risultato:

       month        Month        MONTH 
____________ ____________ ____________ 
december     December     DECEMBER    

È lo stesso per il DAY elemento di 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;

Risultato:

         day          Day          DAY 
____________ ____________ ____________ 
thursday     Thursday     THURSDAY     

Vale anche per la restituzione della versione abbreviata del giorno o del mese.

Esempio:

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;

Risultato:

   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;

Risultato:

    dy     Dy     DY 
______ ______ ______ 
thu    Thu    THU   

L'anno

Forse un fatto meno noto è che Oracle Database fornisce anche elementi di formato che restituiscono l'intero anno esplicitato. In particolare, YEAR e SYEAR (per soddisfare o prima delle date BC).

La capitalizzazione di questi elementi di formato influisce anche sull'output:

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;

Risultato:

                  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;

Risultato:

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

Quando si applica la maiuscola con il Syear format, dobbiamo ricordare che solo il primo carattere – la S carattere – è in maiuscolo e tutti i caratteri rimanenti sono in minuscolo (incluso il Y carattere):