我的数据库BuyCommission和SellCommission中有两列,都定义为DECIMAL。但是,当我的程序执行以下操作时:
UPDATE lots
SET BidValue = '13', Buyer ='2',LotSold = 'S', SellCommission = '1.30',
BuyCommission = '1.30'
WHERE AuctionID = '1' AND LotNumber = '28'
列中显示的值为1,没有保存小数部分。我在将列定义为DECIMAL时使用了正确的类型吗?
答案 0 :(得分:2)
指定DECIMAL
数据类型时,可以指定总位数(精度)和小数点后的位数( scale ) ),形式:
DECIMAL(precision, scale)
如果您没有指定比例,则默认为0
,因此它只是一个整数。如果您希望能够存储包含2位小数的10位数字,请将该列声明为
DECIMAL(10,2)
的MySQL文档
答案 1 :(得分:0)
如果您的字段是小数,则无需在集合中使用单引号:...., SellCommission = 1.3,...
。使用单引号,您有一个隐含转换为十进制的字符串值('1.3')(取决于区域设置,例如小数分隔符是逗号,它可以转换为1)。