小编xr2*_*0xr的帖子

为什么不管精度如何,数据长度都是十进制 5?

我试图更好地理解 SQL 中的数字类型,并且读到十进制类型总是需要 17 个字节。但是,MS Docs列出了一个表格,指示使用的空间量取决于小数的精度。所以我尝试使用该datalength功能对其进行测试。

create table tbl_TestDec(dec1 decimal(19,4), dec2 decimal(20,4), dec3 decimal(9,4))

insert into tbl_TestDec
select 1, 1, 1

select datalength(dec1), datalength(dec2), datalength(dec3) from tbl_TestDec
Run Code Online (Sandbox Code Playgroud)

这输出:

5   5   5
Run Code Online (Sandbox Code Playgroud)

我期待9 13 517 17 17。我正在使用 SQL Server 2005。所有小数都是 vardecimal 还是我误解了 datalength 函数?

sql-server-2005 sql-server datatypes decimal

6
推荐指数
2
解决办法
909
查看次数

标签 统计

datatypes ×1

decimal ×1

sql-server ×1

sql-server-2005 ×1