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' SECONDL'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' DAYIl 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 SECONDha 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') DAYrestituisce il numero di giorni a partire dal 4 luglio 1776, mentre:
(CURRENT_TIME - TIME '00:00:00') MINUTE TO SECONDrestituisce 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