任何人都可以告诉我为什么:声明@decimal decimal(4,3)= 10在SQL SERVER中给我一个错误:
msg 8115 16级状态8行1算术溢出错误将int转换为数据类型numeric
即使这声明@decimal decimal(4,3)= 10.0也会出现此错误:
msg 8115 16级状态8行1算术溢出错误将数字转换为数据类型数字
提前致谢
答案 0 :(得分:3)
小数(4,3)总共有4位数,小数点后面有3位数。请参阅SQL Server在线文档中的decimal and numeric,尤其是精度和比例。
它将保存-9.999到+9.999之间的值。要支持值10,您可以使用小数(5,3)。
答案 1 :(得分:1)
正如Rhys所回答的那样,十进制(m,n)可以存储小数点右边n位数的总共m位数。
因此,十进制(4,3)的可能值范围为-9.999到+9.999,总共为4位,小数点右边为3。存储10你必须使用十进制(5,3),但这将允许值高达99.999