4

可能重复:
货币的最佳数据类型

我的数据库中有一张表,用于存储产品价格;列类型设置为DECIMAL(12, 2)。但是,每当我添加以下价格1,199.00并保存它时,由于某种原因它会转换为 1.00。

或者,如果我添加类似的价格12,000.00,它会将其转换为 12。我应该使用其他类型的字段还是添加其他值DECIMAL

4

2 回答 2

8

根据文档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了解我如何重现错误。

于 2012-07-16T13:57:16.123 回答
2

您的数据类型 DECIMAL(12,2) 似乎没问题。

您应该插入 12999.00,而不是 12,999.00

于 2012-07-16T13:41:04.230 回答