Oracle
 sql >> Datenbank >  >> RDS >> Oracle

2 Funktionen zum Abrufen des Jahres aus einem Datum in Oracle

Unten sind zwei Funktionen, die verwendet werden können, um das Jahr aus einem Datum in der Oracle-Datenbank zu extrahieren.

Der EXTRACT() Funktion

Sie können den EXTRACT(datetime) verwenden Funktion zum Extrahieren verschiedener datetime-Teile aus einem datetime-Wert. Dies schließt das Jahr ein.

Hier ist ein Beispiel:

SELECT EXTRACT(YEAR FROM DATE '2030-12-25')
FROM DUAL; 

Ergebnis:

2030

Es ist das YEAR Schlüsselwort, das den Jahresteil aus dem Datum extrahiert. Wir können andere Datumsteile erhalten, indem wir sie in das relevante Schlüsselwort ändern. Beispiel:MONTH , DAY , HOUR , MINUTE usw.

Wir können die Funktion auch mit anderen datetime-Werten verwenden, wie z. B. TIMESTAMP usw.

Die Funktion kann auch verwendet werden, um das Jahr aus einem Intervall zurückzugeben. Siehe EXTRACT(datetime) Funktion in Oracle für ein Beispiel.

Der TO_CHAR(datetime) Funktion

Wir können auch den TO_CHAR(datetime) verwenden Funktion als alternative Methode, um das Jahr aus einem Datum zu erhalten.

Diese Funktion akzeptiert den datetime oder Intervallwert als erstes Argument und ein Formatmodell als zweites Argument. Die Funktion konvertiert dann den Wert in einen Datentyp von VARCHAR2 im angegebenen Format.

Das Formatmodell gibt das Format an, für das der datetime/interval-Wert zurückgegeben werden soll. Das Formatmodell besteht aus einem oder mehreren -Formatelementen. Dies ermöglicht es uns, die Ergebnisse sorgfältig so zu gestalten, dass sie unser gewünschtes Format widerspiegeln.

Wenn wir nur das Jahr zurückgeben wollen, können wir den YYYY verwenden Formatelement:

SELECT TO_CHAR(DATE '2027-10-03', 'YYYY')
FROM DUAL; 

Ergebnis:

2027

Wir können auch Alternativen für das Formatmodell verwenden. Zum Beispiel können wir YY verwenden um ein zweistelliges Jahr anzugeben:

SELECT TO_CHAR(DATE '2027-10-03', 'YY')
FROM DUAL; 

Ergebnis:

27

Tatsächlich können wir zwischen einem und vier Y haben Zeichen, je nach unseren Anforderungen:

SELECT 
    TO_CHAR(DATE '2027-10-03', 'Y') AS Y,
    TO_CHAR(DATE '2027-10-03', 'YY') AS YY,
    TO_CHAR(DATE '2027-10-03', 'YYY') AS YYY,
    TO_CHAR(DATE '2027-10-03', 'YYYY') AS YYYY
FROM DUAL; 

Ergebnis:

 J JJ JJJ JJJJ ____ _____ _____ _______ 7 27 027 2027 

Komma einfügen

Wir können den Y,YYY verwenden format-Element, wenn wir ein Komma in die Ausgabe einfügen möchten:

SELECT TO_CHAR(DATE '2027-10-03', 'Y,YYY')
FROM DUAL; 

Ergebnis:

2.027

Buchstabiere das Jahr

Wir können sogar das YEAR verwenden Formatelement, um das ausgeschriebene Jahr zurückzugeben:

SELECT TO_CHAR(DATE '2027-10-03', 'YEAR')
FROM DUAL; 

Ergebnis:

ZWANZIG SIEBENUNDZWANZIG

BC-Daten

Wir können auch BC-Daten berücksichtigen, indem wir unserem Jahresformatelement ein S voranstellen . Dabei wird dem Ergebnis ggf. ein Minuszeichen vorangestellt:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'SYYYY') AS SYYYY,
    TO_CHAR(DATE '-250-10-03', 'SYEAR') AS SYEAR
FROM DUAL; 

Ergebnis:

 SYYYY SYEAR ________ _____________ -0250 -TWO FIFTY 

Wir können alternativ die BC oder B.C. Formatelemente zur Berücksichtigung von BC-Daten:

SELECT 
    TO_CHAR(DATE '-250-10-03', 'YYYY BC') AS YYYY,
    TO_CHAR(DATE '-250-10-03', 'YEAR BC') AS YEAR,
    TO_CHAR(DATE '250-10-03', 'YYYY BC') AS YYYY,
    TO_CHAR(DATE '250-10-03', 'YEAR BC') AS YEAR
FROM DUAL; 

Ergebnis:

 JJJJ JAHR JJJJ JAHR __________ __________ __________ _______________ 0250 v. Chr. ZWEI FÜNFZIG v