可能重复:
货币的最佳数据类型
我的数据库中有一张表,用于存储产品价格;列类型设置为DECIMAL(12, 2)
。但是,每当我添加以下价格1,199.00
并保存它时,由于某种原因它会转换为 1.00。
或者,如果我添加类似的价格12,000.00
,它会将其转换为 12。我应该使用其他类型的字段还是添加其他值DECIMAL
?
根据文档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了解我如何重现错误。
您的数据类型 DECIMAL(12,2) 似乎没问题。
您应该插入 12999.00,而不是 12,999.00