<address id="thnfp"></address>

    <address id="thnfp"><th id="thnfp"><progress id="thnfp"></progress></th></address>
    <listing id="thnfp"><nobr id="thnfp"><meter id="thnfp"></meter></nobr></listing>
    以文本方式查看主題

    -  安易免費財務軟件交流論壇  (http://m.gangyx.cn/bbs/index.asp)
    --  電腦知識交流  (http://m.gangyx.cn/bbs/list.asp?boardid=11)
    ----  SQL Server 2008連載之數據類型五  (http://m.gangyx.cn/bbs/dispbbs.asp?boardid=11&id=32398)

    --  作者:炙天
    --  發布時間:2011/1/13 8:38:27
    --  SQL Server 2008連載之數據類型五

    相關字段數據及其數據存儲信息和存儲字節說明

    圖片點擊可在新窗口打開查看

    對于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納秒數所代表的每天的時間。

    關于charvarchar,存儲的是該字符的ASCI碼;雙字節字符存儲2位。

    對于ncharnvarchar,存儲的UNICODE UCS-2 字符集的雙字節。


    Channel