我有一列声明为十进制(4,4)。目前它存储0.0400作为值。现在我需要更新从0.0400存储到9.95.I采用以下方式查询值:在SQL Server 2008中使用decimal数据类型遇到算术溢出错误
Update <tablename>
set <columnname>= 9.95
where <condition>
当我尝试执行,我得到以下错误: 算术溢出错误转换数字数据类型的数字。 该声明已被终止。
请帮忙。
我有一列声明为十进制(4,4)。目前它存储0.0400作为值。现在我需要更新从0.0400存储到9.95.I采用以下方式查询值:在SQL Server 2008中使用decimal数据类型遇到算术溢出错误
Update <tablename>
set <columnname>= 9.95
where <condition>
当我尝试执行,我得到以下错误: 算术溢出错误转换数字数据类型的数字。 该声明已被终止。
请帮忙。
如果你写decimal(4,4)
,什么数据库听到的是:
所以一个decimal(4,4)
可以存储范围0.0000
至0.9999
(及其负面等值)。但是9.95
超出该范围,所以它会返回一个错误。
定义列decimal(4,4)
是说
我将有4位总,其中4来小数点
为了表示9.95
后相当于,你需要将其存储为9.9500
以满足'小数点后4位'的条件。但是这现在超过了'最大4位数'的条件,所以不能转换。
您至少需要decimal(5, 4)
以这种方式存储9.95作为小数。
几年前我有类似的问题,这里是我的理解。
十进制(TotalDigitsIncludingDecimal,小数位数)
例如:值= 50.05声明十进制(4,2) 例如:值= 5000.0005声明十进制(8,4)