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