Expresii de interval
O expresie de interval produce o valoare de INTERVAL
YEAR
TO
MONTH
sau INTERVAL
DAY
TO
SECOND
.
expresie_interval::=
Descrierea ilustrației expresie_interval.gif
Expresiile expr1
și expr2
pot fi orice expresii care se evaluează la valori de tip de date DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
sau TIMESTAMP
WITH
LOCAL
TIME
ZONE
.
Datele și intervalele pot fi combinate în conformitate cu regulile definite în tabelul 2-5. Cele șase combinații care produc valori de interval sunt valabile într-o expresie de interval.
Atât leading_field_precision
cât și fractional_second_precision
pot fi orice număr întreg de la 0 la 9. Dacă omiteți leading_field_precision
pentru DAY
sau YEAR
, atunci Oracle Database utilizează valoarea implicită de 2. Dacă omiteți fractional_second_precision
pentru al doilea, atunci baza de date utilizează valoarea implicită de 6. Dacă valoarea returnată de o interogare conține mai multe cifre decât precizia implicită, atunci Oracle Database returnează o eroare. Prin urmare, este o bună practică să specificați o precizie despre care știți că va fi cel puțin la fel de mare ca orice valoare returnată de interogare.
De exemplu, următoarea instrucțiune scade valoarea coloanei order_date
din tabelul de eșantionare orders
(o valoare dată-timp) din marcajul de timp al sistemului (o altă valoare dată-timp) pentru a obține o expresie de valoare de interval. Nu se știe cu câte zile în urmă a fost plasată cea mai veche comandă, așa că se specifică valoarea maximă de 9 pentru precizia câmpului lading DAY
:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;
.