In Oracle Database, EXTRACT(datetime)
la funzione estrae e restituisce il valore di un campo datetime specificato da un'espressione datetime o intervallo.
Sintassi
La sintassi è questa:
EXTRACT( { YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND
| TIMEZONE_HOUR
| TIMEZONE_MINUTE
| TIMEZONE_REGION
| TIMEZONE_ABBR
}
FROM { expr }
)
Dove expr
è qualsiasi espressione che restituisce un tipo di dati datetime o intervallo compatibile con il campo richiesto.
L'expr
argomento viene trattato come un tipo di dati datetime ANSI.
Esempio 1
Ecco un esempio per dimostrare la funzione:
SELECT EXTRACT(YEAR FROM DATE '2027-10-03')
FROM DUAL;
Risultato:
2027
Esempio 2
Ecco un esempio che estrae i secondi e i microsecondi da un TIMESTAMP
valore:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2027-10-15 23:10:57.98321 +04:00') AS Result
FROM DUAL;
Risultato:
57.98321
Intervalli
Ecco un esempio che estrae l'anno da un intervallo letterale:
SELECT EXTRACT(YEAR FROM INTERVAL '25-3' YEAR TO MONTH)
FROM DUAL;
Risultato:
25
Tentativo di estrazione del campo errato
Ecco cosa succede quando proviamo a estrarre un campo che non esiste nel valore specificato:
SELECT
EXTRACT(SECOND FROM DATE '2027-10-15') AS Result
FROM DUAL;
Risultato:
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:
Non tutte le parti della data possono essere estratte da tutti i tipi di dati. Consulta la documentazione Oracle per le parti della data accettate per ogni dato tipo di dati.