sql >> Databasteknik >  >> RDS >> Oracle

Hur man lägger till AD/BC-indikatorn till ett datum i Oracle

När du använder TO_CHAR() funktion för att formatera ett datum och tid-värde i Oracle Database, kan du lägga till AD/BC-indikatorn genom att helt enkelt lägga till antingen AD eller BC till din formatmodell.

Oracle visar sedan lämplig indikator, beroende på om datumvärdet är AD eller BC.

Du kan tillhandahålla det i valfri versal eller gemen och med eller utan punkter (t.ex. AD , A.D. ad , a.d , etc). Oracle kommer då att visa indikatorn enligt specifikationen.

Exempel

Här är ett exempel att visa:

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

Resultat:

30-12-2030 AD

I det här fallet är datumet AD, så resultatet har AD bifogas.

AD vs BC

Oracle räknar ut om det är AD eller BC och visar den tillämpliga indikatorn.

Så här händer när jag ändrar datumet till ett BC-värde:

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

Resultat:

30-12-2030 BC

Den resulterande indikatorn är BC, även om min formatsträng är AD .

Verlor vs gemener

Om du ändrar skiftläge för formatelementet ändras skiftläge för resultatet:

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;

Resultat:

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

Prickar vs Inga prickar

Du kan inkludera prickar om du föredrar:

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;

Resultat:

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

Observera dock att detta påverkade indikatorn för blandade skiftlägen.

Dagens datum och tid

Här skickar jag SYSDATE för att använda det aktuella datumet:

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

Resultat:

29-08-2021 A.D.

  1. Generera serier av datum - använd datumtyp som indata

  2. Förstå sammanställningen av databasnivå och effekten av att ändra den för en databas

  3. Hur hämtar man en uppsättning tecken med SUBSTRING i SQL?

  4. Skickar en uppsättning värden till Oracle-proceduren för att använda i WHERE IN-satsen