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

EXTRACT (datetime) Funktion in Oracle

In der Oracle-Datenbank der EXTRACT(datetime) Funktion extrahiert und gibt den Wert eines angegebenen DateTime-Feldes aus einem DateTime- oder Interval-Ausdruck zurück.

Syntax

Die Syntax lautet wie folgt:

EXTRACT( { YEAR
         | MONTH
         | DAY
         | HOUR
         | MINUTE
         | SECOND
         | TIMEZONE_HOUR
         | TIMEZONE_MINUTE
         | TIMEZONE_REGION
         | TIMEZONE_ABBR
         }
         FROM { expr }
       )

Wobei expr ist ein beliebiger Ausdruck, der zu einem DateTime- oder Intervall-Datentyp ausgewertet wird, der mit dem angeforderten Feld kompatibel ist.

Der expr Argument wird als ANSI-Datum/Uhrzeit-Datentyp behandelt.

Beispiel 1

Hier ist ein Beispiel, um die Funktion zu demonstrieren:

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

Ergebnis:

2027

Beispiel 2

Hier ist ein Beispiel, das die Sekunden und Mikrosekunden aus einem TIMESTAMP extrahiert Wert:

SELECT 
    EXTRACT(SECOND FROM TIMESTAMP '2027-10-15 23:10:57.98321 +04:00') AS Result
FROM DUAL;

Ergebnis:

57.98321

Intervalle

Hier ist ein Beispiel, das das Jahr aus einem Intervallliteral extrahiert:

SELECT EXTRACT(YEAR FROM INTERVAL '25-3' YEAR TO MONTH)
FROM DUAL;

Ergebnis:

25

Versuch, das falsche Feld zu extrahieren

Folgendes passiert, wenn wir versuchen, ein Feld zu extrahieren, das im angegebenen Wert nicht vorhanden ist:

SELECT 
    EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL;

Ergebnis:

Error starting at line : 1 in command -
SELECT 
    EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL
Error at Command Line : 2 Column : 25
Error report -
SQL Error: ORA-30076: invalid extract field for extract source
30076. 00000 -  "invalid extract field for extract source"
*Cause:    The extract source does not contain the specified extract field.
*Action:

Nicht alle Datumsteile können aus allen Datentypen extrahiert werden. Siehe die Oracle-Dokumentation für die akzeptierten Datumsteile für jeden gegebenen Datentyp.