数据类型转换函数
CAST() (<expression> AS <data_ type>[ length ])
expression:SQL Server正确的表达式。
data_type: 转换的类型
length:可选参数
例:
SELECT
列名 AS "转换前"
FROM
表名
转换为DECIMAL 类型并不指定length
SELECT CAST
( 列名 AS DECIMAL ) AS "转换后"
FROM
表名
转换为DECIMAL 类型指定length
SELECT CAST
( 列名 AS DECIMAL ( 24, 2 ) ) AS "修改后"
FROM
表名
(24,2)意思为:总位数为24,小数点后为2位的数,也就是说这个字段的整数位最大是(24-2)位。
实际问题发现:
字段设置的为numeric(18,4),字段值为100.0000。
使用SELECT CAST ( 列名 AS DECIMAL ( 5, 2 ) ) AS "别名" FROM 表名。
( 5, 2 )设置整数位是3位,小数位是2位。 那不就是100.00 了 ,不是刚好满足这个条件吗?可是会出现numeric 转换为数据类型 numeric 时出现算术溢出错误的问题。最少设置DECIMAL ( 6, 2 )就没事了。
求靓仔美女帮小弟解决下这个问题原因。