EXTRACT |
Extraire |
|---|---|
| Oracle Database SQL | Oracle 9i (9.0) ou supérieure |
Syntaxe
|
EXTRACT(
{YEAR|MONTH|DAY|HOUR|MINUTE|SECOND} | {TIMEZONE_HOUR|TIMEZONE_MINUTE} | {TIMEZONE_REGION|TIMEZONE_ABBR} FROM { date_value | interval_value } ) |
Paramètres
| Nom | Description |
|---|---|
| date_value | Ce paramètre permet d'indiquer la valeur de la date à traiter |
| interval_value | Ce paramètre permet d'indiquer la valeur d'intervalle à traiter |
Description
Cette fonction permet d'extraire la valeur d'une date ou d'une valeur d'intervalle.
Remarques
- Extraction ciblée de composantes temporelles : La fonction EXTRACT permet d'obtenir des éléments spécifiques d'une valeur temporelle, tels que l'année, le mois, le jour, l'heure, la minute ou la seconde. Cela facilite les analyses précises basées sur une composante du temps. Par exemple, extraire uniquement l'année d'une date peut être utile dans des rapports annuels ou pour regrouper des données temporelles. Cette extraction ciblée évite d'avoir à manipuler manuellement les chaînes de caractères pour isoler chaque partie. Cela améliore la lisibilité et les performances des requêtes SQL impliquant des dates.
- Support des zones horaires étendu : Outre les composantes classiques d'une date, EXTRACT permet également d'extraire des informations liées au fuseau horaire, comme TIMEZONE_HOUR, TIMEZONE_MINUTE, TIMEZONE_REGION ou TIMEZONE_ABBR. Ce support est particulièrement utile dans les systèmes internationaux où les données temporelles peuvent provenir de régions différentes. Cela permet de construire des applications plus robustes, capables de gérer correctement les décalages horaires et de produire des rapports cohérents à l'échelle mondiale.
- Utilisable sur des types DATE, TIMESTAMP et INTERVAL : La fonction EXTRACT est compatible non seulement avec les types de données DATE et TIMESTAMP, mais aussi avec INTERVAL. Cela permet de travailler aussi bien sur des dates absolues que sur des durées, ce qui élargit son champ d'application. Par exemple, on peut extraire le nombre d'années d'un intervalle pour savoir depuis combien de temps un événement s'est produit. Cela rend la fonction utile dans les calculs d'écart, de durée ou de temporalité relative entre deux événements.
- Fonction standard SQL et portable : EXTRACT est une fonction standard SQL conforme aux normes ANSI/ISO. Cela signifie que son utilisation est similaire dans d'autres systèmes de gestion de bases de données (comme PostgreSQL ou DB2). Cette compatibilité favorise la portabilité des requêtes et la standardisation du code SQL. Pour les développeurs travaillant sur plusieurs plateformes, c'est un avantage majeur par rapport à des fonctions propriétaires comme TO_CHAR avec des masques de formatage.
- Alternative plus propre aux fonctions de formatage : Bien que des fonctions comme TO_CHAR(date, 'YYYY') puissent aussi extraire des composantes de date, EXTRACT est souvent préférable dans un contexte analytique ou arithmétique. En effet, EXTRACT retourne des valeurs numériques, ce qui facilite leur utilisation dans des calculs ou des clauses WHERE, GROUP BY, etc. Cela évite de devoir convertir les chaînes en nombres, ce qui améliore les performances et la clarté du code.
- Excellente intégration avec les fonctions analytiques : La fonction EXTRACT est particulièrement puissante lorsqu'elle est combinée à des fonctions analytiques. Par exemple, on peut facilement extraire l'année ou le trimestre d'un TIMESTAMP pour calculer des agrégats par période. Cela permet de créer des rapports dynamiques où les regroupements temporels sont générés automatiquement. Cela rend la requête plus expressive, car la logique de découpage temporel est clairement visible dans le code SQL.
- Gestion transparente des fuseaux horaires dans les sessions : Lorsqu'elle est utilisée sur des valeurs de type TIMESTAMP WITH TIME ZONE, la fonction EXTRACT respecte les paramètres de session liés au fuseau horaire. Cela signifie que les résultats peuvent varier en fonction des préférences de la session utilisateur (via ALTER SESSION SET TIME_ZONE). Cela permet d'adapter dynamiquement les résultats aux contextes utilisateurs, ce qui est crucial pour les applications globalisées où les utilisateurs sont répartis sur plusieurs fuseaux horaires.
- Requiert une attention particulière pour les INTERVAL négatifs : Lorsque la fonction EXTRACT est utilisée sur une valeur de type INTERVAL, et que cette valeur est négative, le résultat peut nécessiter une attention particulière. Par exemple, extraire les mois d'un intervalle négatif retourne une valeur négative, ce qui est logique mais peut surprendre si on ne s'y attend pas. Il est donc important de bien comprendre le comportement de la fonction pour éviter des erreurs d'interprétation dans les calculs temporels.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015