在SQL表中插入小数时出现溢出错误

时间:2019-03-12 13:35:57

标签: sql sql-server

在MS SQL中获取错误Arithmetic overflow error converting numeric to data type numeric.。这是桌子:

CREATE TABLE [Percentages]
(
    [enabled] bit,
    [name] nvarchar(150),
    [percent] decimal(5,5)
)

这是我要插入的内容:

INSERT INTO [Percentages] ([enabled], [name], [percent])
VALUES (1,'Test',2.0)

如果十进制限制为00000.00000到99999.99999,为什么2.0会给我错误? “ 2”也给出相同的错误

2 个答案:

答案 0 :(得分:2)

decimal(5,5)表示总共5位数字,其中5位是小数。 (即-0.99999至0.99999。)

您想要decimal(10,5)

答案 1 :(得分:0)

十进制(5,5)表示-十进制(p,s),其中sscale,即小数点右边的位数。 pprecision,以十进制存储的总位数。将p减去s可得到小数点左边的位数。

在您的情况下-小数(5,5)允许小数点左边的0位数字。因此,它将引发错误。

尝试给出:decimal(10,5)或其他基于您的最大期望值的值。