Syntaxe
extract_datetime :: =
Description de l’illustration extract_datetime.gif
Objectif
EXTRACT
extrait et renvoie la valeur de un champ datetime spécifié à partir d’une expression de valeur datetime ou d’intervalle. Lorsque vous extrayez un TIMEZONE_REGION
ou TIMEZONE_ABBR
(abréviation), la valeur renvoyée est une chaîne contenant le nom ou l’abréviation du fuseau horaire approprié. Lorsque vous extrayez l’une des autres valeurs, la valeur renvoyée se trouve dans le calendrier grégorien. Lors de l’extraction d’une date / heure avec une valeur de fuseau horaire, la valeur renvoyée est en UTC. Pour obtenir la liste des noms de fuseaux horaires et leurs abréviations correspondantes, interrogez la vue des performances dynamiques V$TIMEZONE_NAMES
.
Cette fonction peut être très utile pour manipuler les valeurs de champ datetime en très de grands tableaux, comme indiqué dans le premier exemple ci-dessous.
Remarque:
Les noms de région de fuseau horaire sont nécessaires à la fonction d’heure d’été. Les noms de région sont stockés dans deux fichiers de fuseau horaire. Le fichier de fuseau horaire par défaut est un petit fichier contenant uniquement les fuseaux horaires les plus courants pour optimiser les performances. Si votre fuseau horaire n’est pas dans le fichier par défaut, vous ne bénéficierez pas de la prise en charge de l’heure d’été tant que vous n’aurez pas fourni un chemin d’accès au fichier complet (plus volumineux) au moyen de la variable d’environnement ORA_TZFILE
.
Certaines combinaisons de champ de date / heure et d’expression de valeur de date / heure ou d’intervalle entraînent une ambiguïté. Dans ces cas, Oracle Database renvoie UNKNOWN
(voir les exemples qui suivent pour plus d’informations).
Le champ que vous extrayez doit être un champ de datetime_value_expr
ou interval_value_expr
. Par exemple, vous ne pouvez extraire que YEAR
, MONTH
et DAY
d’un DATE
valeur. De même, vous pouvez extraire TIMEZONE_HOUR
et TIMEZONE_MINUTE
uniquement à partir de TIMESTAMP
WITH
TIME
ZONE
type de données.
Voir aussi:
-
Guide de l’administrateur de base de données Oracle pour plus d’informations sur la définition de la variable d’environnement
ORA_TZFILE
-
Oracle Guide de prise en charge de la globalisation de la base de données. Pour une liste complète des noms de région de fuseau horaire dans les deux fichiers.
-
« Datetime / Interval Arithmetic » pour une description de
datetime_value_expr
etinterval_value_expr
-
Oracle Database Reference pour plus d’informations sur les vues dynamiques des performances
Exemples
L’exemple suivant renvoie à partir du tableau oe.orders
le nombre de commandes passées chaque mois:
L’exemple suivant renvoie l’année 1998.
SELECT EXTRACT(YEAR FROM DATE "1998-03-07") FROM DUAL;EXTRACT(YEARFROMDATE"1998-03-07")--------------------------------- 1998
Les exemples suivants élit dans le tableau exemple hr.employees
tous les employés qui ont été embauchés après 1998:
L’exemple suivant entraîne une ambiguïté, donc Oracle renvoie UNKNOWN
:
L’ambiguïté provient du fait que le décalage numérique du fuseau horaire est fourni dans l’expression, et que ce décalage numérique peut correspondre à plusieurs régions de fuseau horaire.