引用十进制值

时间:2010-04-01 08:42:35

标签: mysql decimal quoting

我在一个十进制(10,2)字段中存储一个运行总计,并在处理项目时添加它。

更新foo set bar = bar +'3.15'

大约20%的时间发出警告“第4行的列'bar'数据被截断”

如果未引用更新值,则不会发出此警告。 是否应引用十进制值?

5 个答案:

答案 0 :(得分:4)

当然不是。

整数和浮点数不是字符串,不应该引用。只有MySQL甚至允许它们周围的引号。

答案 1 :(得分:2)

您添加的值是否可能超出Decimal(10,2)的限制?

E.g。

update foo set bar = bar + '3.149999'

会导致'数据截断'警告,因为该字段只能存储小数点右边的2位数字(而不是6位)。

答案 2 :(得分:1)

不,小数值按原样指定。如果引用它们,它将被解释为varchar。

答案 3 :(得分:0)

没有!引号仅用于字符串,如text,char,varchar等

答案 4 :(得分:0)

如果您没有引用NUMERIC / DECIMAL值,它们可能首先转换为FLOAT(失去精度),然后转换为您想要的类型。您还可以使用CAST关键字(MySQL)或:: cast(Postgres)。