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

Aggiungi l'indicatore ordinale a una data in Oracle

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