
相關字段數據及其數據存儲信息和存儲字節說明
對于bit、tinyint、smallint、int、bigint這類整型數據,應該是比較容易理解的,例如十進制數1234567890,換算成16進制為499602D2,在SQL Server中,數字的存儲是需要倒置的,因此實際存儲應為D2029649。
對于decimal(p,s)、numeric(p,s)的值分別為987654.3210、9876.543210,但二進制卻均為01EA16B04C02000000,把9876543210換算成16進制為24CB016EA進行翻轉,然后再加上符號位,即為01EA16B04C02000000;但很奇怪兩者沒有存儲小數位置,難道需要臨時從數據字典中獲。
smallmoney用四個字節表示,存儲的是與基數-214748.3648想減得到的數字再乘以10000后的二進制形式。Money用八個字節表示,存儲的是與基數-922,337,203,685,477.5808想減得到的數字再乘以10000后的二進制形式。
float、real暫未知
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納秒數所代表的每天的時間。
關于char和varchar,存儲的是該字符的ASCI碼;雙字節字符存儲2位。
對于nchar和nvarchar,存儲的UNICODE UCS-2 字符集的雙字節。