为什么我不能在小数字段中输入整数值?
我正在尝试为 SQL Server 表编写一条插入语句,将值 1 插入到小数字段中。该字段的类型为decimal(10, 10),据我了解,这意味着它最多可以有10位数字,其中小数点后最多可以有10位数字。但是,当我尝试运行插入语句时,出现以下错误:
Arithmetic overflow error converting int to data type numeric.
如果我将字段的数据类型更改为十进制(11, 10),它会突然起作用。我在这里不明白什么?我做错了什么?
I'm trying to write an insert statement for a SQL Server table that inserts the value 1 into a decimal field. The field is of the type decimal(10, 10) which, as far as I understand, means that it can have up to 10 digits altogether, and up to 10 of those digits can be after the decimal point. But, when I try to run the insert statement I get the following error:
Arithmetic overflow error converting int to data type numeric.
If I change the data type of the field to decimal(11, 10), it suddenly works. What am I not understanding here? What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
decimal(10, 10)
表示所有小数位,小数点左边没有数字!请参阅此处: http://msdn.microsoft.com/en -us/library/aa258832(SQL.80).aspx_
decimal(11,10)
为您提供小数点左侧 1 位数字和右侧 10 位数字,因此现在适合整数 1!编辑
使用时:
decimal(p,s)
,将p
视为总共有多少位(无论小数点左边还是右边) 您想要存储的内容,以及s
表示小数点右侧应有多少p
数字。decimal(10, 10)
means all decimal places, no digits to the left of the decimal point!see here: http://msdn.microsoft.com/en-us/library/aa258832(SQL.80).aspx_
decimal(11,10)
gives you 1 digit the the left of the decimal and 10 to the right, so integer 1 fits now!EDIT
when using:
decimal(p,s)
, think ofp
as how many total digits (regardless of left or right of the decimal point) you want to store, ands
as how many of thosep
digits should be to the right of the decimal point.