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

EXTRACT (datetime) Funktion i Oracle

I Oracle Database er EXTRACT(datetime) funktion udtrækker og returnerer værdien af ​​et angivet datetime-felt fra et datetime- eller intervaludtryk.

Syntaks

Syntaksen ser sådan ud:

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

Hvor expr er ethvert udtryk, der evalueres til en datetime- eller intervaldatatype, der er kompatibel med det anmodede felt.

expr argument behandles som en ANSI datetime-datatype.

Eksempel 1

Her er et eksempel til at demonstrere funktionen:

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

Resultat:

2027

Eksempel 2

Her er et eksempel, der udtrækker sekunder og mikrosekunder fra en TIMESTAMP værdi:

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

Resultat:

57.98321

Intervaller

Her er et eksempel, der uddrager året fra et interval bogstaveligt:

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

Resultat:

25

Forsøg på at udpakke det forkerte felt

Her er, hvad der sker, når vi forsøger at udtrække et felt, der ikke findes i den angivne værdi:

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

Resultat:

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:

Ikke alle datodele kan udtrækkes fra alle datatyper. Se Oracle-dokumentationen for de accepterede datodele for hver given datatype.


  1. Lagret procedure med valgfri WHERE-parametre

  2. Hvordan opdaterer man valgte rækker med værdier fra en CSV-fil i Postgres?

  3. SYS_GUID() Funktion i Oracle

  4. Lagre billeder i SQL Server?