用于算术运算的隐式 CAST

本主题列举用于算术运算的隐式 CAST(强制类型转换)。

算术运算符(+、-、* 和 /)通常用于计算相同数据类型的操作数,并返回与操作数类型相同的值。下表显示了可接受操作数的数据类型彼此不同,或者结果值的数据类型不同于操作数类型的情况。

下表列出了用于算术运算的隐式 CAST。
左操作数数据类型 右操作数数据类型 支持的运算符 结果数据类型
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
注:
  1. 与结果数据类型不匹配的操作数要先强制转换为结果数据类型再继续操作。例如,如果加号左边的操作数是 INTEGER 类型,而右边的操作数是 FLOAT 类型,就要先将左操作数强制转换为 FLOAT 再相加。
  2. 一个 (GMT)TIME 值减去一个 (GMT)TIME 值、一个 DATE 值减去一个 DATE 值,或者一个 (GMT)TIMESTAMP 值减去一个 (GMT)TIMESTAMP 值都会得到一个 INTERVAL 值,它表示两个操作数之间的时间间隔。
  3. 一个 (GMT)TIME、DATE 或 (GMT)TIMESTAMP 值加上或减去一个 INTERVAL 值会得到一个数据类型为非 INTERVAL 操作数的新值,它表示原始非 INTERVAL 值加上或减去 INTERVAL 代表的时间段得到的时间点。
  4. 一个 INTERVAL 值乘以或除以一个 INTEGER、FLOAT 或 DECIMAL 值会得到一个新的 INTERVAL,它表示原始值乘以或除以非 INTERVAL 操作数代表的因子得到的时间段。例如,一个 2 小时 16 分钟的INTERVAL 值乘以一个 FLOAT 值 2.5 会得到一个新的 INTERVAL 值:5 小时 40 分钟。乘或除原始 INTERVAL 进行的中间计算会得出非 INTERVAL 数据类型,但 INTERVAL 的各个字段(如 HOUR、YEAR 等)始终是整数,因此可能会发生舍入误差。
相关概念
ESQL 概述
相关任务
正在开发 ESQL
相关参考
复杂 ESQL 函数
隐式类型强制转换
用于比较的隐式 CAST
用于赋值的隐式 CAST
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ak05710_