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 }
)
Où 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é.