将 varchar 转换为数字数据类型时出现算术溢出错误 - SQL 服务器
Arithmetic overflow error converting varchar to data type numeric - SQL Server
我有一个数据类型为 numeric(18,3)
的列。用户也可以输入十进制数。我已将此文本框的最大长度设置为 18,但是当我键入 777777777777777777 时,出现此错误
Arithmetic overflow error converting varchar to data type numeric
有人能解释一下为什么会出现这个错误吗?
因为numeric(18,3)
表示:18个数字在总数中,其中3小数点后 - 所以你只能在小数点前得到 15 位数字。
输入18位(小数点前)显然会溢出!
如果你确实需要小数点前18位,你需要将你的列定义为numeric(21,3)
ALTER TABLE dbo.TableName
ALTER COLUMN MinimumValue NUMERIC(21, 3)
我有一个数据类型为 numeric(18,3)
的列。用户也可以输入十进制数。我已将此文本框的最大长度设置为 18,但是当我键入 777777777777777777 时,出现此错误
Arithmetic overflow error converting varchar to data type numeric
有人能解释一下为什么会出现这个错误吗?
因为numeric(18,3)
表示:18个数字在总数中,其中3小数点后 - 所以你只能在小数点前得到 15 位数字。
输入18位(小数点前)显然会溢出!
如果你确实需要小数点前18位,你需要将你的列定义为numeric(21,3)
ALTER TABLE dbo.TableName
ALTER COLUMN MinimumValue NUMERIC(21, 3)