Utilizando os Operadores Numéricos com Valores de Data/Hora

Os exemplos a seguir mostram o ESQL que é possível codificar para manipular valores data/hora com operadores numéricos.

Incluindo um Intervalo a um Valor de Data/Hora
A operação mais simples que você pode executar é incluir um intervalo ou subtrair um intervalo de um valor data/hora. Por exemplo, você pode gravar as seguintes expressões:
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.

Incluindo ou Subtraindo Dois Intervalos
É possível combinar dois valores de intervalo utilizando adição ou subtração. Os dois valores de intervalos devem ser tipos compatíveis. Não é válido incluir um intervalo ano-mês em um intervalo dia-segundo conforme mostrado no exemplo a seguir:
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.

Subtraindo Dois Valores de Data/Hora
É possível subtrair dois valores data/hora para retornar um intervalo. Você deve incluir um qualificador de intervalo na expressão para indicar a precisão com a qual o resultado deve ser retornado. Por exemplo:
(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.

Escalando Intervalos
É possível multiplicar ou dividir um valor de intervalo por um fator inteiro:
INTERVAL '2:30' MINUTE TO SECOND / 4
Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Operadores ESQL
Visão Geral de Mapeamentos de Mensagens
Tarefas relacionadas
Desenvolvendo Fluxos de Mensagens
Desenvolvendo ESQL
Calculando um Intervalo de Tempo
Referências relacionadas
Nós Internos
Referência de ESQL
Tipo de Dados ESQL INTERVAL
Operadores de Comparação Simples do ESQL
Operadores Lógicos ESQL
Operadores Numéricos ESQL
Regras para Precedência de Operadores ESQL
Função CAST
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:49

ac16750_