sql >> Databasteknik >  >> RDS >> Oracle

EXTRACTA (datetime) Funktion i Oracle

I Oracle Database, EXTRACT(datetime) funktionen extraherar och returnerar värdet för ett angivet datetime-fält från ett datetime- eller intervalluttryck.

Syntax

Syntaxen ser ut så här:

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

Där expr är vilket uttryck som helst som utvärderas till en datetime- eller intervalldatatyp som är kompatibel med det begärda fältet.

expr argument behandlas som en ANSI datetime-datatyp.

Exempel 1

Här är ett exempel för att demonstrera funktionen:

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

Resultat:

2027

Exempel 2

Här är ett exempel som extraherar sekunderna och mikrosekunderna från en TIMESTAMP värde:

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

Resultat:

57.98321

Intervaller

Här är ett exempel som extraherar året från en bokstavlig intervall:

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

Resultat:

25

Försök att extrahera fel fält

Här är vad som händer när vi försöker extrahera ett fält som inte finns i det angivna värdet:

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:

Alla datumdelar kan inte extraheras från alla datatyper. Se Oracle-dokumentationen för de godkända datumdelarna för varje given datatyp.


  1. hur man konverterar csv till tabell i oracle

  2. Upptäck om raden har uppdaterats eller infogats

  3. Att köra flera satser med Postgresql via SQLAlchemy kvarstår inte

  4. IDLE timeout-parameter i Oracle