Sql server SQL Server 2005十进制字段行为

Sql server SQL Server 2005十进制字段行为,sql-server,Sql Server,我创建了一个简单的表格,其中x字段的类型为decimal(28,15) 我运行以下查询以插入值: 插入测试表值(1234567890123) 当我从testtable I中选择时,字段x的值为 1234567890123.000000000000000 是否有一种方法可以指定(可能在表设计中)sql server不应在小数点后存储零(如果不是必需的)?i、 e.进行选择时,数据将返回为 1234567890123 另外,为什么insert into testtable values(123456

我创建了一个简单的表格,其中x字段的类型为decimal(28,15)

我运行以下查询以插入值:

插入测试表值(1234567890123)

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

1234567890123.000000000000000

是否有一种方法可以指定(可能在表设计中)sql server不应在小数点后存储零(如果不是必需的)?i、 e.进行选择时,数据将返回为

1234567890123

另外,为什么insert into testtable values(1234567890134)会给出以下错误:

将数值转换为数据类型数值时出现算术溢出错误


尝试下面的查询。它很好用

   select cast(1234567890123.000000000000000 as decimal)
另外,为什么insert into testtable values(1234567890134)会给出以下错误:

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

如果不需要,是否有方法指定sql server不应在小数点后存储零

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