Os exemplos a seguir mostram o ESQL que é possível codificar para manipular valores data/hora com operadores numéricos.
DATE '2000-03-29' + INTERVAL '1' MONTH TIMESTAMP '1999-12-31 23:59:59' + INTERVAL '1' SECOND
O exemplo a seguir mostra como calcular uma data de aposentadoria, incluindo a idade de aposentadoria na data de nascimento.
DECLARE retAge CHARACTER '65'; DECLARE birthDate DATE DATE '1953-06-01'; SET OutputRoot.XML.Test.retirementDate = birthDate + CAST(retAge AS INTERVAL YEAR);
A repetição da palavra DATE no exemplo acima é intencional. A primeira ocorrência de DATE especifica o tipo de dados da variável declarada, birthDate. A segunda ocorrência inicializa a mesma variável com a cadeia de caracteres constante colocada entre aspas como DATE.
INTERVAL '1-06' YEAR TO MONTH + INTERVAL '20' DAY
O qualificador do intervalo resultante é suficiente para englobar todos os campos que estão presentes nos intervalos de dois operandos. Por exemplo:
INTERVAL '2 01' DAY TO HOUR + INTERVAL '123:59' MINUTE TO SECOND
resulta em um intervalo com um qualificador DAY TO SECOND, porque os campos de dia e de segundo estão presentes em pelo menos um dos valores de operandos.
(CURRENT_DATE - DATE '1776-07-04') DAY
retorna o número de dias desde 4 de julho de 1776, enquanto:
(CURRENT_TIME - TIME '00:00:00') MINUTE TO SECOND
retorna a duração do dia em minutos e segundos.
INTERVAL '2:30' MINUTE TO SECOND / 4