In Oracle Database, possiamo utilizzare il TH
format per aggiungere il suffisso del numero ordinale al risultato di un TO_CHAR()
operazione durante la formattazione delle date.
Ad esempio, invece di generare 10 Feb
potremmo produrre 10 Feb
. Oppure, invece di produrre 21 century
, possiamo produrre 21st century
. Lo stesso vale per i componenti della data scritta. Ad esempio, invece di Twenty One
, possiamo produrre Twenty First
.
Esempio
Ecco un esempio da dimostrare:
SELECT TO_CHAR(DATE '2030-12-01', 'Ddth Month')
FROM DUAL;
Risultato:
01st December
Possiamo usare il fm
modificatore di formato per rimuovere lo zero iniziale, se necessario:
SELECT TO_CHAR(DATE '2030-12-01', 'fmDdth Month')
FROM DUAL;
Risultato:
01st December
Si noti che la maiuscola del numero ordinale è determinata dal relativo elemento di formato (in questo caso, il Dd
parte), non il TH
suffisso.
Ecco cosa succede quando cambiamo il secondo d
in maiuscolo:
SELECT TO_CHAR(DATE '2030-12-01', 'fmDDth Month')
FROM DUAL;
Risultato:
1ST December
Quindi, anche se abbiamo fornito il th
suffisso in minuscolo, non ha avuto alcun effetto sul risultato. La capitalizzazione è stata determinata dall'elemento del formato (escluso il fm
modificatore di formato).
Possiamo anche aggiungere il numero ordinale quando restituiamo altri componenti della data, come il secolo:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;
Risultato:
21st Century
Date scritte
Possiamo aggiungere il SP
elemento di formato per avere la parte della data esplicita:
SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;
Risultato:
TWENTY-FIRST Century
E possiamo usare le maiuscole come richiesto:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;
Risultato:
Twenty-First Century
Ecco cosa succede quando omettiamo il TH
identificatore di formato:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;
Risultato:
Twenty-One