Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction EXTRACT (datetime) dans Oracle

Dans Oracle Database, le EXTRACT(datetime) extrait et renvoie la valeur d'un champ datetime spécifié à partir d'une expression datetime ou d'intervalle.

Syntaxe

La syntaxe ressemble à ceci :

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

expr est une expression qui correspond à un type de données datetime ou intervalle compatible avec le champ demandé.

L'expr l'argument est traité comme un type de données datetime ANSI.

Exemple 1

Voici un exemple pour illustrer la fonction :

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

Résultat :

2027

Exemple 2

Voici un exemple qui extrait les secondes et les microsecondes d'un TIMESTAMP valeur :

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

Résultat :

57.98321

Intervalles

Voici un exemple qui extrait l'année d'un littéral d'intervalle :

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

Résultat :

25

Tentative d'extraction du mauvais champ

Voici ce qui se passe lorsque nous essayons d'extraire un champ qui n'existe pas dans la valeur spécifiée :

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

Résultat :

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:

Toutes les parties de date ne peuvent pas être extraites de tous les types de données. Consultez la documentation Oracle pour connaître les parties de date acceptées pour chaque type de données donné.