用于存储小数的MySQL字段类型

时间:2010-07-01 12:59:46

标签: mysql

我正在创建一个数据库,该数据库将保存具有多个“高度”列的产品(以米为单位,例如7.79或12,8)。小数点之前和小数点后2位数不得超过2位数。我应该使用哪种字段类型?

如果我使用十进制(2,2)尝试在phpmyadmin中插入7.79我会收到错误警告:#1264超出第1行“working_height”列的范围值

我将使用此数据库进行搜索,因此我必须能够运行“选择高度大于7的所有产品”这样的查询。

3 个答案:

答案 0 :(得分:10)

您正在寻找小数(4,2) - 一般来说,十进制(m,n)表示m位数,n位于小数点右侧。文档here

因此,小数(2,2)可以存储两位小数,这两位都位于小数点的右侧。这解释了您所看到的错误。

答案 1 :(得分:8)

人们会说要使用decimal(s, d)但是如何将值存储为整数,以厘米而不是米为单位?更容易比较(没有精确损失)。

只是我的两分钱。

答案 2 :(得分:4)

尝试使用DECIMAL(4,2)

请参阅:MySQL Numeric Types