我有一列数字,范围从-100到+100。它们在小数点后有0到9个值。以下是一些例子:-32.1235,-5.1234,-12,6,6.3,9.0)。
我正试图将它们放入表中,我收到错误 -
数字类型的输入语法无效:“ - ”
我尝试将数据类型更改为十进制,但我发现它一直在恢复为数字。而且,我希望这些数字能够准确存储。
如何为数字输入负数?
编辑:还有另一个post建议只使用数据类型数字。我已将数据转换为数字,但我仍然收到无效的输入语法消息。
答案 0 :(得分:1)
我最好的猜测是你使用的是一个看似负号的角色,但事实并非如此。顺便提一句,numeric
和decimal
是相同的数据类型。正如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。