国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
SQL SERVER 數(shù)值類型的存儲(chǔ)格式及轉(zhuǎn)換 - misterliwei的專欄 - CS...

  SQL SERVER 數(shù)值類型的存儲(chǔ)格式及轉(zhuǎn)換 收藏

SQL SERVER 數(shù)值類型的存儲(chǔ)格式及轉(zhuǎn)換



一.    整數(shù)
整數(shù)類型有四種:BigInt、Int、SmallInt和Tinyint,分別占用空間為8、4、2、1個(gè)字節(jié)。整數(shù)類型的存儲(chǔ)格式比較簡單:數(shù)據(jù)的補(bǔ)碼形式。這個(gè)大家比較熟悉。

二.    Decimal/Numeric
這兩個(gè)數(shù)據(jù)類型定義格式:decimal[(p[, s])] 和 numeric[(p[, s])]
p(精度)
指定小數(shù)點(diǎn)左邊和右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù)。精度必須是從 1 到最大精度之間的值。最大精度為38。
s(小數(shù)位數(shù))
指定小數(shù)點(diǎn)右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大個(gè)數(shù)。小數(shù)位數(shù)必須是從 0 到 p 之間的值。默認(rèn)小數(shù)位數(shù)是 0,因而 0 <= s <= p。最大存儲(chǔ)大小基于精度而變化。
精度與存儲(chǔ)字節(jié)之間的關(guān)系:


那么SQL SERVER是如何存儲(chǔ)Decimal/Numeric數(shù)據(jù)的呢?

首先右移小數(shù)點(diǎn)s位(不管小數(shù)點(diǎn)后面是否為0),使得數(shù)據(jù)成為整數(shù)(這是該類型數(shù)據(jù)成為精確類型的基礎(chǔ))。SQL SERVER對(duì)結(jié)果值專門使用一個(gè)字節(jié)記錄正負(fù):0x00表示負(fù);0x01表示正。結(jié)果的絕對(duì)值(沒有符號(hào)部分)存儲(chǔ)于符號(hào)值其后。
以上部分(符號(hào)位和結(jié)果值)構(gòu)成了Decimal/Numeric類型數(shù)據(jù)的長度,也就是上表中占用的字節(jié)數(shù)。其實(shí)在SQL SERVER內(nèi)部,另外還得需要3個(gè)字節(jié):1個(gè)字節(jié)記錄精度;1個(gè)字節(jié)記錄小數(shù)位數(shù);另有1字節(jié)為0。

所有最終的存儲(chǔ)格式如下:

三.    Money和 Smallmoney
貨幣類型有兩種:Money和SmallMoney,分別占用8個(gè)和4個(gè)字節(jié)。貨幣類型固定有4位的小數(shù)位。
貨幣類型和Decimal/Numeric類型的存儲(chǔ)格式有相似處也有不同處。
相似的地方是:SQL SERVER會(huì)將貨幣類型小數(shù)點(diǎn)右移4位(相當(dāng)于乘以10000),這樣就成整數(shù)了。
不同的地方是,由于貨幣類型的小數(shù)位數(shù)固定為4,所有沒有必要記錄精度值和小數(shù)位數(shù)了。同時(shí)貨幣類型也沒有專門的符號(hào)位,SQL SERVER直接將小數(shù)點(diǎn)右移后的值按補(bǔ)碼存儲(chǔ)。

給貨幣類型賦值時(shí),不需要用單引號(hào) (') 引起來。請(qǐng)務(wù)必記住雖然您可以指定前面帶有貨幣符號(hào)的貨幣值,但 SQL Server 不存儲(chǔ)任何與符號(hào)關(guān)聯(lián)的貨幣信息,它只存儲(chǔ)數(shù)值。


四.    浮點(diǎn)數(shù)Float和real
Float類型定義格式:float [ ( n ) ]。 n 為用于存儲(chǔ)科學(xué)記數(shù)法 float 數(shù)尾數(shù)的位數(shù),同時(shí)指示其精度和存儲(chǔ)大小。n 必須為從 1 到 53 之間的值。
   精度與存儲(chǔ)字節(jié)之間的關(guān)系:

在 SQL Server 中,real 的同義詞為 float(24)。
由于浮點(diǎn)數(shù)存儲(chǔ)的數(shù)據(jù)的近似值,所以如果不是要保存特別大的數(shù)據(jù),建議使用精確類型值。浮點(diǎn)數(shù)的存儲(chǔ)格式請(qǐng)看博文 。

五.    使用CONVERT將數(shù)值類型轉(zhuǎn)換為字符型
1.    下表顯示了從 float 或 real 轉(zhuǎn)換為字符數(shù)據(jù)時(shí)的 style 值。

2.    在下表中,左列表示從 money 或 smallmoney 轉(zhuǎn)換為字符數(shù)據(jù)時(shí)的 style 值。

3.    若目的字符串太短,則會(huì)產(chǎn)生下面的錯(cuò)誤:




六.    參考文獻(xiàn)

1.    MSDN

發(fā)表于 @ 2010年04月12日 17:40:00 | 評(píng)論( 1) | 編輯| 舉報(bào)| 收藏

舊一篇:浮點(diǎn)數(shù)在計(jì)算機(jī)中的表示 | 新一篇:保護(hù)模式、實(shí)地址模式及V8086模式下的指令格式(上)

 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
decimal(numeric )、float 和 real 數(shù)據(jù)類型的區(qū)別[轉(zhuǎn)]
請(qǐng)問:decimal和numeric的區(qū)別是什么?
浮點(diǎn)數(shù)在計(jì)算機(jī)中的表示
SQL中的real、float、decimal、numeric數(shù)據(jù)類型區(qū)別
Sql Server基礎(chǔ):數(shù)據(jù)類型詳解
小數(shù)在內(nèi)存中究竟是如何存儲(chǔ)的(C語言代碼詳細(xì)講解 1)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服