我认为这是一个非常愚蠢的问题,但这让我慢慢地痛苦地扼杀了我,我已经做了一些研究,为什么会发生这种情况并让我一无所知。
我在SQL Server 2008 R2中有一个简单的表,包括:
id int;
name varchar 50;
price decimal(18,0)
问题是每次我希望插入或更新,并且值是十进制,例如12.5,在我插入之后,数据库会自动将此向上舍入为13.如果我输入12,5它将转向如果我将这个数字存储为小数,为什么会发生这种情况呢?我知道这可能是一个愚蠢的答案,但在我缺乏数据库经验和我花时间锁定答案的时候,我相信我需要一些帮助。 Thx in advanced
答案 0 :(得分:3)
如果你定义你的decimal
总共是18位数,零小数点后 - 你期望什么?
你需要在小数点后给你的小数点一些数字!
使用类似
的内容decimal(18,2)
或任何你需要的东西
详细了解decimal
数据类型以及如何在MSDN SQL Server Books Online上使用