Utilizzo degli operatori numerici con i valori datetime

I seguenti esempi mostrano l'ESQL che è possibile codificare per manipolare i valori datatime con gli operatori numerici.

Informazioni su questa attività

Aggiunta di un intervallo ad un valore datetime
L'operazione più semplice che si possa eseguire è quella di aggiungere un intervallo a, o sottrarre un intervallo da, un valore datetime. Ad esempio, si potrebbero scrivere le seguenti espressioni:
DATE '2000-03-29' + INTERVAL '1' MONTH
TIMESTAMP '1999-12-31 23:59:59' + INTERVAL '1' SECOND

L'esempio di seguito riportato mostra in che modo calcolare una data di pensionamento, aggiungendo l'età pensionabile alla data di nascita.

DECLARE retAge CHARACTER '65';
DECLARE birthDate DATE DATE '1953-06-01';

SET OutputRoot.XML.Test.retirementDate = birthDate + CAST(retAge AS INTERVAL YEAR);

La ripetizione del termine DATE nell'esempio precedente è intenzionale. La prima ricorrenza di DATE specifica il tipo di dati della variabile dichiarata, birthDate. La seconda ricorrenza inizializza la stessa variabile con la stringa di carattere costante racchiusa tra virgolette singole, come DATE.

Aggiunta o sottrazione di due intervalli
È possibile combinare due valori di intervallo utilizzando l'aggiunta o la sottrazione. I due valori di intervallo devono essere di tipi compatibili. Non è consentito aggiungere un intervallo anno-mese ad un intervallo giorno-secondi come mostrato nel seguente esempio:
INTERVAL '1-06' YEAR TO MONTH + INTERVAL '20' DAY

Il qualificatore intervallo dell'intervallo risultante è sufficiente per includere tutti i campi presenti nei due intervalli degli operandi. Ad esempio:

INTERVAL '2 01' DAY TO HOUR + INTERVAL '123:59' MINUTE TO SECOND

ha come risultato un intervallo con qualificatore DAY TO SECOND, poiché sono presenti entrambi i campi, giorno e secondi, in almeno uno dei valori degli operandi.

Sottrazione di due valori datetime
È possibile sottrarre due valori datetime per restituire un intervallo. È necessario includere un qualificatore intervallo nell'espressione per indicare a che livello di precisione debba essere restituito il risultato. Ad esempio:
(CURRENT_DATE - DATE '1776-07-04') DAY

restituisce il numero di giorni a partire dal 4 luglio 1776, mentre:

(CURRENT_TIME - TIME '00:00:00') MINUTE TO SECOND

restituisce l'ora del giorno espressa in minuti e secondi.

Intervalli in scala
È possibile moltiplicare o dividere un valore intervallo per un fattore intero:
INTERVAL '2:30' MINUTE TO SECOND / 4