2

我创建了一个包含十进制类型字段 x 的简单表(28,15)

我运行以下查询来插入一个值:

插入测试表值(1234567890123)

当我从 testtable I 中进行选择时,字段 x 的值为

1234567890123.000000000000000

有没有办法指定(可能在表设计中)如果不需要,sql server 不应该在小数点后存储零?即当进行选择时,数据将返回为

1234567890123

另外为什么插入到testtable值(12345678901234)中会出现以下错误:

将数字转换为数字数据类型的算术溢出错误。

4

2 回答 2

1

另外为什么插入到testtable值(12345678901234)中会出现以下错误:

您指定的总宽度为 28,小数点后有 15 位。小数点前最多保留 13 位数字。

如果不需要,有没有办法指定 sql server 不应该在小数点后存储零?

严格来说,“十进制”是一种固定精度格式,因此任何数字都将占据与任何其他数字完全相同的空间(请参阅MSDN)。

于 2012-07-30T13:10:09.390 回答
0

试试下面的查询。它工作正常...

   select cast(1234567890123.000000000000000 as decimal)
于 2012-07-30T13:03:49.593 回答