Intervalové výrazy
Intervalový výraz dává hodnotu INTERVAL
YEAR
TO
MONTH
nebo INTERVAL
DAY
TO
SECOND
.
interval_expression::=
Popis obrázku interval_expression.gif
Výrazy expr1
a expr2
mohou být libovolné výrazy, které se vyhodnocují na hodnoty datového typu DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
nebo TIMESTAMP
WITH
LOCAL
TIME
ZONE
.
Data a intervaly lze kombinovat podle pravidel definovaných v tabulce 2-5. V intervalovém výrazu je platných šest kombinací, které dávají hodnoty intervalů.
Jak leading_field_precision
, tak fractional_second_precision
mohou být libovolná celá čísla od 0 do 9. Pokud vynecháte leading_field_precision
pro DAY
nebo YEAR
, pak Oracle Database použije výchozí hodnotu 2. Pokud vynecháte fractional_second_precision
pro druhou, pak databáze použije výchozí hodnotu 6. Pokud hodnota vrácená dotazem obsahuje více číslic, než je výchozí přesnost, pak Oracle Database vrátí chybu. Proto je dobré zadat přesnost, o které víte, že bude minimálně stejně velká jako jakákoli hodnota vrácená dotazem.
Například následující příkaz odečte hodnotu sloupce order_date
ve vzorové tabulce orders
(hodnota data) od systémového časového razítka (jiná hodnota data), čímž získá výraz pro intervalovou hodnotu. Není známo, před kolika dny byla zadána nejstarší objednávka, proto je pro přesnost pole DAY
zadána maximální hodnota 9:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;
.