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

Come aggiungere l'indicatore AD/BC a una data in Oracle

Quando si utilizza TO_CHAR() funzione per formattare un valore datetime in Oracle Database, puoi aggiungere l'indicatore AD/BC semplicemente aggiungendo AD o BC al tuo modello di formato.

Oracle visualizza quindi l'indicatore appropriato, a seconda che il valore della data sia AD o BC.

Puoi fornirlo in qualsiasi maiuscolo o minuscolo e con o senza punti (ad es. AD , A.D. ad , a.d , eccetera). Oracle visualizzerà quindi l'indicatore come specificato.

Esempio

Ecco un esempio da dimostrare:

SELECT 
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY AD')
FROM DUAL;

Risultato:

30-12-2030 AD

In questo caso, la data è AD, quindi il risultato ha AD aggiunto.

AD vs BC

Oracle determina se si tratta di AD o BC e visualizza l'indicatore applicabile.

Ecco cosa succede quando cambio la data in un valore BC:

SELECT 
    TO_CHAR(date '-2030-12-30', 'DD-MM-YYYY AD')
FROM DUAL;

Risultato:

30-12-2030 BC

L'indicatore risultante è BC, anche se la mia stringa di formato è AD .

Maiuscole vs Minuscole

La modifica del caso dell'elemento del formato cambia il caso del risultato:

SELECT 
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY AD') AS "Uppercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY ad') AS "Lowercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY Ad') AS "Mixed"
FROM DUAL;

Risultato:

       Uppercase        Lowercase            Mixed 
________________ ________________ ________________ 
30-12-2030 AD    30-12-2030 ad    30-12-2030 Ad   

Punti contro nessun punto

Puoi includere dei punti se preferisci:

SELECT 
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY A.D.') AS "Uppercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY a.d.') AS "Lowercase",
    TO_CHAR(date '2030-12-30', 'DD-MM-YYYY A.d.') AS "Mixed"
FROM DUAL;

Risultato:

         Uppercase          Lowercase              Mixed 
__________________ __________________ __________________ 
30-12-2030 A.D.    30-12-2030 a.d.    30-12-2030 A.D.    

Tuttavia, nota che ciò ha influito sull'indicatore dei casi misti.

Data e ora di oggi

Qui passo SYSDATE per utilizzare la data corrente:

SELECT 
    TO_CHAR(SYSDATE, 'DD-MM-YYYY A.D.')
FROM DUAL;

Risultato:

29-08-2021 A.D.