Utilizar operadores numéricos con valores de fecha y hora

Los ejemplos siguientes muestran el ESQL que puede codificar para manipular los valores de fecha y hora con operadores numéricos.

Suma de un intervalo a un valor de fecha y hora
La operación más sencilla que puede realizar es sumar o restar un intervalo de un valor de fecha y hora. Por ejemplo, puede escribir las expresiones siguientes:
DATE '2000-03-29' + INTERVAL '1' MONTH
TIMESTAMP '1999-12-31 23:59:59' + INTERVAL '1' SECOND

El siguiente ejemplo muestra cómo calcular una fecha de jubilación añadiendo la edad de la jubilación a la fecha de nacimiento:

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

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

La repetición de la palabra DATE en el ejemplo anterior es intencional. La primera aparición de DATE especifica el tipo de datos de la variable declarada birthDate (fecha de nacimiento). En la segunda aparición se inicializa la misma variable con la Serie de constante encerrada entre comillas como fecha (DATE).

Suma o resta de dos intervalos
Puede combinar dos valores de intervalo utilizando la suma o la resta. Los dos valores de intervalo deben ser de tipos compatibles. No es válido sumar un intervalo de año-mes a un intervalo de día-segundo tal como se muestra en el ejemplo siguiente:
INTERVAL '1-06' YEAR TO MONTH + INTERVAL '20' DAY

El calificador de intervalo del intervalo resultante es suficiente para que abarque todos los campos que actualmente están en los dos intervalos del operando. Por ejemplo:

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

da como resultado un intervalo con un calificador de DAY TO SECOND, debido a que tanto los campos de día y segundo están presentes en al menos uno de los valores de operando.

Resta de dos valores de fecha y hora
Puede restar dos valores de fecha y hora para devolver un intervalo. Debe incluir un calificador de intervalo en la expresión para indicar la precisión en la que debe devolverse el resultado. Por ejemplo:
(CURRENT_DATE - DATE '1776-07-04') DAY

devuelve el número de días desde el 4 de Julio de 1776, donde:

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

devuelve la antigüedad del día en minutos y segundos.

Intervalos de escalado
Puede multiplicar o dividir un valor de intervalo por un factor de entero:
INTERVAL '2:30' MINUTE TO SECOND / 4
Conceptos relacionados
Visión general de flujos de mensajes
Operador ESQL
Visión general de las correlaciones de mensajes
Tareas relacionadas
Desarrollar flujos de mensajes
Desarrollo de ESQL
Calcular un intervalo de tiempo
Referencia relacionada
Nodos incorporados
Referencia de ESQL
Tipo de datos INTERVAL (intervalo) ESQL
Operadores simples de comparación ESQL
Operadores lógicos ESQL
Operadores ESQL numéricos
Normas para la prioridad de operadores ESQL
Función CAST
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:53:54

ac16750_