MySQL数据被截断

时间:2014-03-26 22:32:57

标签: mysql database

我试图在我的数据库中存储价格。我已将列设置为DECIMAL(2,2)并尝试插入2.10。当我运行insert语句时,我得到2个警告:

"数据在第1行和第34行的列价格被截断; 和 "超出第1行"

列价格的范围值

有人对可能导致警告的内容有任何想法吗?

由于

3 个答案:

答案 0 :(得分:1)

如果您要存储最多DECIMAL(4,2),则需要99.99

第一部分是数字是最大总位数,通常称为"显着性"数量。第二部分是小数点后的位数,通常称为" precision"。因此,4位总数位,小数点右侧2位的最大值为99.99


补充工具栏:你几乎应该总是比这更重要。一个好的标准是DECIMAL(13,2),它允许您存储金额高达99,999,999,999.99美元,或者仅低于一千亿美元。

答案 1 :(得分:1)

你应该在mysql中读取十进制类型。在MySQL中DECIMAL(2,2)表示最多两位数,小数点分隔符右侧有两位数。这基本上意味着你的所有数字都在点的右边。

如果你想要两个带有两个小数点的数字,你应该使用DECIMAL(4,2),这意味着总共有四位数,其中两位是小数点分隔符的右边。

答案 2 :(得分:0)

格式为DECIMAL(M,D),其中M是列的最大位数,D是小数位数,因此10.5将为DECIMAL(3,1)例如。您可能需要DECIMAL(4,2)作为列规范