Espressioni di intervallo
Un’espressione di intervallo produce un valore di INTERVAL
YEAR
TO
MONTH
o INTERVAL
DAY
TO
SECOND
.
interval_expression::=
Descrizione dell’illustrazione interval_expression.gif
Le espressioni expr1
e expr2
possono essere qualsiasi espressione che valuta a valori del tipo di dato DATE
, TIMESTAMP
, TIMESTAMP
WITH
TIME
ZONE
, o TIMESTAMP
WITH
LOCAL
TIME
ZONE
.
Dati e intervalli possono essere combinati secondo le regole definite nella Tabella 2-5. Le sei combinazioni che producono valori di intervallo sono valide in un’espressione di intervallo.
Allora leading_field_precision
e fractional_second_precision
possono essere qualsiasi numero intero da 0 a 9. Se si omette il leading_field_precision
per DAY
o YEAR
, allora Oracle Database usa il valore predefinito di 2. Se si omette il fractional_second_precision
per il secondo, allora il database usa il valore predefinito di 6. Se il valore restituito da una query contiene più cifre che la precisione predefinita, allora Oracle Database restituisce un errore. Pertanto, è buona pratica specificare una precisione che sapete sarà almeno grande quanto qualsiasi valore restituito dalla query.
Per esempio, l’istruzione seguente sottrae il valore della colonna order_date
nella tabella di esempio orders
(un valore datetime) dal timestamp di sistema (un altro valore datetime) per produrre un’espressione di valore di intervallo. Non si sa quanti giorni fa è stato fatto l’ordine più vecchio, quindi viene specificato il valore massimo di 9 per la precisione del campo di carico DAY
:
SELECT (SYSTIMESTAMP - order_date) DAY(9) TO SECOND FROM orders WHERE order_id = 2458;