Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment ajouter l'indicateur AD/BC à une date dans Oracle

Lors de l'utilisation de TO_CHAR() pour formater une valeur datetime dans Oracle Database, vous pouvez ajouter l'indicateur AD/BC en ajoutant simplement soit AD ou BC à votre modèle de format.

Oracle affiche alors l'indicateur approprié, selon que la valeur de la date est AD ou BC.

Vous pouvez le fournir en majuscules ou en minuscules, avec ou sans points (par exemple, AD , A.D. ad , a.d , etc). Oracle affichera alors l'indicateur comme spécifié.

Exemple

Voici un exemple pour illustrer :

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

Résultat :

30-12-2030 AD

Dans ce cas, la date est AD, et donc le résultat a AD annexé.

AD contre Colombie-Britannique

Oracle détermine s'il s'agit d'AD ou de BC et affiche l'indicateur applicable.

Voici ce qui se passe lorsque je remplace la date par une valeur BC :

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

Résultat :

30-12-2030 BC

L'indicateur résultant est BC, même si ma chaîne de format est AD .

Majuscule vs Minuscule

Changer la casse de l'élément de format change la casse du résultat :

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;

Résultat :

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

Points contre aucun point

Vous pouvez inclure des points si vous préférez :

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;

Résultat :

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

Cependant, notez que cela a affecté l'indicateur de casse mixte.

Date et heure du jour

Ici, je passe SYSDATE pour utiliser la date actuelle :

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

Résultat :

29-08-2021 A.D.