SQL添加十进制导致:算术溢出错误将数字转换为数据类型数字

时间:2012-05-05 14:31:58

标签: sql sql-server sql-server-2008 tsql

我有两个数字存储在数据库中作为十进制,精度等于9.我的目标是添加这两个数字并更新数据库中的值。

DECLARE @v1 DECIMAL(9, 5), @v2 DECIMAL(9, 5)
SET @v1 = 9503.34000
SET @v2 = 1357.62000
SELECT CAST(@v1 + @v2 AS DECIMAL(9, 5))

当我在SQL中添加它时会抛出溢出错误,但是在将其更改为10,5时会导致 10860.96000

如何根据我想要的精度告诉SQL添加和返回结果。我希望这笔钱能够让我回报9,5不是10,5。

1 个答案:

答案 0 :(得分:3)

无法返回DECIMAL(9,5)。您在小数位前面有5位数字,因为9,503 + 1,357大于10,000。

如果您只想要使用9位数CAST(@v1 +@v2 as DECIMAL(10,4))。你似乎没有使用小数点后第五位。