GBase8s ESQL/C实行数学运算:
当ESQL/C在两个值上执行数学运算时,当两个值类型不匹配时, 将执行类型转换。
转换规则如下:
操作 | DEC | FLOAT | INT | SERIAL | SMALLFLOAT | SMALLINT |
DEC | DEC | DEC | DEC | DEC | DEC | DEC |
FLOAT | DEC | FLOAT | FLOAT | FLOAT | FLOAT | FLOAT |
INT | DEC | FLOAT | INT | INT | FLOAT | INT |
SERIAL | DEC | FLOAT | INT | INT | FLOAT | INT |
SMALLFLOAT | DEC | FLOAT | FLOAT | FLOAT | FLOAT | FLOAT |
SMALLINT | DEC | FLOAT | INT | INT | FLOAT | INT |
下面的表格列出了numeric数据类型, 数据库列使用SQL数据类型,ESQL/C变量使用ESQL/C数据类型
SQL数据类型 | ESQL/C数据类型 |
INTEGER | 4-byte integer |
SMALLINT | short integer |
DECIMAL | decimal |
MONEY | decimal |
FLOAT | double |
SMALLFLOAT | float |
转换非decimal数值类型
数据类型 | 转换为 |
FLOAT | DECIMAL(17) |
SMALLFLOAT | DECIMAL(9) |
INTEGER | DECIMAL(10,0) |
SMALLINT | DECIMAL(5,0) |