数据类型“数字”可以支持PostgreSQL中的负数吗?

时间:2018-05-30 20:22:48

标签: database postgresql precision sqldatatypes

我有一列数字,范围从-100到+100。它们在小数点后有0到9个值。以下是一些例子:-32.1235,-5.1234,-12,6,6.3,9.0)。

我正试图将它们放入表中,我收到错误 -

数字类型的输入语法无效:“ - ”

我尝试将数据类型更改为十进制,但我发现它一直在恢复为数字。而且,我希望这些数字能够准确存储。

如何为数字输入负数?

编辑:还有另一个post建议只使用数据类型数字。我已将数据转换为数字,但我仍然收到无效的输入语法消息。

1 个答案:

答案 0 :(得分:1)

我最好的猜测是你使用的是一个看似负号的角色,但事实并非如此。顺便提一句,numericdecimal是相同的数据类型。正如documentation所解释的那样:

  

十进制和数字类型是等效的。这两种类型都是SQL标准的一部分。

以下对我来说很好:

select x, cast(x as decimal(10, 2)), cast(x as numeric(10, 2))
from (values (-32.1235), (-5.1234), (-12), (6), (6.3), (9.0) ) v(x);

而且,正如预期的那样,结果是一样的。 Here是rextester。