Transformaciones CAST implícitas para operaciones aritméticas

En este tema se listan las transformaciones CAST implícitas disponibles para operaciones aritméticas.

Normalmente, los operadores aritméticos (+, -, *, and /) operan en operandos del mismo tipo de datos y devuelven un valor del mismo tipo de datos que los operandos. En la tabla siguiente, los casos en los que resulta aceptable que los operandos sean de tipos de datos diferentes o en los que el tipo de datos del valor resultante es diferente de tipo de los operandos.

La tabla siguiente lista las transformaciones CAST implícitas para operaciones aritméticas.
Tipo de datos del operando izquierdo Tipo de datos del operando derecho Operadores soportados Tipo de datos de resultado
INTEGER FLOAT +, -, *, / FLOAT1
INTEGER DECIMAL +, -, *, / DECIMAL1
INTEGER INTERVAL * INTERVAL4
FLOAT INTEGER +, -, *, / FLOAT1
FLOAT DECIMAL +, -, *, / FLOAT1
FLOAT INTERVAL * INTERVAL4
DECIMAL INTEGER +, -, *, / DECIMAL1
DECIMAL FLOAT +, -, *, / FLOAT1
DECIMAL INTERVAL * INTERVAL4
TIME TIME - INTERVAL2
TIME GMTTIME - INTERVAL2
TIME INTERVAL +, - TIME3
GMTTIME TIME - INTERVAL2
GMTTIME GMTTIME - INTERVAL2
GMTTIME INTERVAL +, - GMTTIME3
DATE DATE - INTERVAL2
DATE INTERVAL +, - DATE3
TIMESTAMP TIMESTAMP - INTERVAL2
TIMESTAMP GMTTIMESTAMP - INTERVAL2
TIMESTAMP INTERVAL +, - TIMESTAMP3
GMTTIMESTAMP TIMESTAMP - INTERVAL2
GMTTIMESTAMP GMTTIMESTAMP - INTERVAL2
GMTTIMESTAMP INTERVAL +, - GMTTIMESTAMP3
INTERVAL INTEGER *, / INTERVAL4
INTERVAL FLOAT *, / INTERVAL4
INTERVAL DECIMAL *, / INTERVAL4
INTERVAL TIME + TIME3
INTERVAL GMTTIME + GMTTIME3
INTERVAL DATE + DATE3
INTERVAL TIMESTAMP + TIMESTAMP3
INTERVAL GMTTIMESTAMP + GMTTIMESTAMP3
Notas:
  1. Antes de que continúe la operación, el operando que no coincide con el tipo de datos del resultado sufre una transformación CAST en el tipo de datos del resultado. Por ejemplo, si el operando izquierdo de un operador de suma es INTEGER y el operando derecho es FLOAT, se efectúa una transformación CAST del operando izquierdo en FLOAT antes de realizar la operación de suma.
  2. Cuando se resta un valor (GMT)TIME de un valor (GMT)TIME, un valor DATE de un valor DATE o un valor (GMT)TIMESTAMP de un valor (GMT)TIMESTAMP, da como resultado un valor INTERVAL que representa el intervalo de tiempo entre los dos operandos.
  3. Al sumar o restar un valor INTERVAL de un valor (GMT)TIME, DATE o (GMT)TIMESTAMP da como resultado un valor nuevo del tipo de datos del operando que no es INTERVAL representado mediante el punto horario que representa el valor no de INTERVAL original, más o menos la longitud del período de tiempo representado mediante INTERVAL.
  4. Al multiplicar o dividir un valor de INTERVAL por un valor INTEGER, FLOAT o DECIMAL da como resultado un INTERVAL nuevo que representa la longitud del período de tiempo representado por el original, multiplicado o dividido por el factor representado mediante el operando no de INTERVAL. Por ejemplo, un valor de INTERVAL de 2 horas y 16 minutos multiplicado por un valor FLOAT de 2.5 da como resultado un valor de INTERVAL nuevo de 5 horas y 40 minutos. Los cálculos intermedios que implica multiplicar o dividir el valor de INTERVAL original se llevan a cabo en el tipo de datos del valor no de INTERVAL, pero los campos individuales de INTERVAL (por ejemplo, HOUR, YEAR, etc.) siempre son integrales, por lo tanto, es posible que se produzcan algunos errores de redondeo.
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Funciones ESQL complejas
Transformaciones CAST implícitas
Transformaciones CAST implícitas para comparaciones
Transformaciones CAST implícitas para asignaciones
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05710_