Expressions d’intervalle
Une expression d’intervalle donne une valeur de INTERVAL
YEAR
TO
MONTH
ou INTERVAL
DAY
TO
SECOND
.
expression_intervalle::=
Description de l’illustration expression_intervalle.gif
Les expressions expr1
et expr2
peuvent être toutes les expressions qui s’évaluent à des valeurs de type données DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
, ou TIMESTAMP
WITH
LOCAL
TIME
ZONE
.
Les dates et les intervalles peuvent être combinés selon les règles définies dans le tableau 2-5. Les six combinaisons qui donnent des valeurs d’intervalle sont valides dans une expression d’intervalle.
Les deux leading_field_precision
et fractional_second_precision
peuvent être n’importe quel nombre entier de 0 à 9. Si vous omettez le leading_field_precision
pour DAY
ou YEAR
, alors la base de données Oracle utilise la valeur par défaut de 2. Si vous omettez le fractional_second_precision
pour le second, alors la base de données utilise la valeur par défaut de 6. Si la valeur renvoyée par une requête contient plus de chiffres que la précision par défaut, alors la base de données Oracle renvoie une erreur. Par conséquent, il est bon de spécifier une précision dont vous savez qu’elle sera au moins aussi grande que toute valeur retournée par la requête.
Par exemple, l’instruction suivante soustrait la valeur de la colonne order_date
de la table échantillon orders
(une valeur de temps de date) de l’horodatage du système (une autre valeur de temps de date) pour donner une expression de valeur d’intervalle. On ne sait pas depuis combien de jours la commande la plus ancienne a été passée, c’est pourquoi on spécifie la valeur maximale de 9 pour la précision du champ de chargement DAY
:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;
.