以文本方式查看主题

-  安易免费财务软件交流论坛  (http://anyi.net.cn/bbs/index.asp)
--  电脑知识交流  (http://anyi.net.cn/bbs/list.asp?boardid=11)
----  SQL Server 2008连载之数据类型五  (http://anyi.net.cn/bbs/dispbbs.asp?boardid=11&id=32398)

--  作者:炙天
--  发布时间:2011/1/13 8:38:27
--  SQL Server 2008连载之数据类型五

相关字段数据及其数据存储信息和存储字节说明

图片点击可在新窗口打开查看

对于bittinyintsmallintintbigint这类整型数据,应该是比较容易理解的,例如十进制数1234567890,换算成16进制为499602D2,在SQL Server中,数字的存储是需要倒置的,因此实际存储应为D2029649

对于decimal(p,s)numeric(p,s)的值分别为987654.32109876.543210,但二进制却均为01EA16B04C02000000,把9876543210换算成16进制为24CB016EA进行翻转,然后再加上符号位,即为01EA16B04C02000000;但很奇怪两者没有存储小数位置,难道需要临时从数据字典中获取?

smallmoney用四个字节表示,存储的是与基数-214748.3648想减得到的数字再乘以10000后的二进制形式。Money用八个字节表示,存储的是与基数-922,337,203,685,477.5808想减得到的数字再乘以10000后的二进制形式。

floatreal暂未知

datetime类型的第一个 4 字节存储的是 base date(即 1900 1 1 日)之前或之后的天数;另外一个 4 字节存储以午夜后毫秒数所代表的每天的时间。

smalldatetime 数据类型存储日期和每天的时间,但精确度低于 datetime。第一个 2 字节存储 1900 1 1 日后的天数;另外一个 2 字节存储午夜后的分钟数。

date类型的3个字节存储的是base date(即 1900 1 1 日)之后的天数。

time类型的5个字节存储的是以午夜后100纳秒所代表的每天的时间。

datetime2类型的前3字节存储的是 base date(即 1900 1 1 日)之前或之后的天数;另外一个 5 字节存储以午夜后100纳秒数所代表的每天的时间。

关于charvarchar,存储的是该字符的ASCI码;双字节字符存储2位。

对于ncharnvarchar,存储的UNICODE UCS-2 字符集的双字节。