我的数据库中有一个表格,用于存储产品价格;列类型设置为DECIMAL(12, 2)
。但是,每当我添加以下价格:1,199.00
并保存它时,由于某种原因它会转换为1.00。
或者,如果我添加12,000.00
之类的价格,它会将其转换为12.我是否应该使用其他类型的字段或将其他值添加到DECIMAL
?
答案 0 :(得分:7)
根据documentation on DECIMAL
,该列类型应该可以正常工作。如果您使用其他语言与MySQL(例如PHP)进行交互,则应将该代码与SQL代码一起发布,因为在纯SQL中,我无法重现您指明的行为。这是我使用的样本:
CREATE TABLE money (
amount DECIMAL(12, 2));
INSERT INTO `money` (`amount`) VALUES (12999.00);
INSERT INTO `money` (`amount`) VALUES (12,999.00);
这会因为错误而失败,因为第二个INSERT
语句将12,999.00
视为两个单独的值,目的地是两个独立的列。由于只列出了一列(amount
),因此失败。有关我如何重现错误,请参阅this fiddle。
答案 1 :(得分:2)
您的数据类型DECIMAL(12,2)似乎没问题。
您应该插入12999.00,而不是12,999.00