在學習sql時:有這樣一句:
1
score
numeric
(4,1)
,不解到底是多少位,被舊書上不負責任的筆記困擾
1
numeric
(x+y,y)
其中,y為小數字數,x為整數字數,x+y為總位數
則:numeric(4,1)總位數為4,其中小數1位,整數4-1=3位
這是對數字型別的資料型別而言,若對字元型,二進位制資料型,其
1
datatype(m)
中的m表示長度,占用位元組;數字型別的長度由sql標準自動指定。
微軟technet的解釋如下:
12
3
4
5
6
7
8
9
10
11
12
13
14
精度、小數字數和長度 (transact-sql)
其他版本
精度指數字的位數。 小數字數指小數點後的數字位數。 例如,數 123.45 的精度是 5,小數字數是 2。
在 sql server 中,numeric 和 decimal 資料型別的預設最大精度為 38。 在 sql server 早期版本中,預設最大精度為 28。
數字資料型別的長度是儲存此數所占用的位元組數。 字串或 unicode 資料型別的長度是字元個數。 binary、varbinary 和 image 資料型別的長度是位元組數。 例如,int 資料型別可以有 10 位數,用 4 個位元組儲存,不接受小數點。int 資料型別的精度是 10,長度是 4,小數字數是 0。
當兩個 char、varchar、binary 或 varbinary 表示式串聯時,所生成表示式的長度是兩個源表示式長度之和,或是 8,000 字元,以二者中少者計。
當兩個 nchar 或 nvarchar 表示式串聯時,所生成表示式的長度是兩個源表示式長度之和,或是 4,000 字元,以二者中少者計。
使用 union、except 或 intersect 對資料型別相同但長度不同的兩個表示式進行比較時,得到的長度為兩個表示式中較大的長度。
除了 decimal 型別之外,數字資料型別的精度和小數字數是固定的。 如果算術運算子有兩個相同型別的表示式,結果就為該資料型別,並且具有對此型別定義的精度和小數字數。 如果運算子有兩個不同數字資料型別的表示式,則由資料型別優先順序決定結果的資料型別。 結果具有為該資料型別定義的精度和小數字數。
下表定義了當運算結果是 decimal 型別時,如何計算結果的精度和小數字數。 當下列任一條件成立時,結果為 decimal:
兩個表示式都是 decimal 型別。
乙個表示式是 decimal 型別,而另乙個是比 decimal 優先順序低的資料型別。
運算元表示式由表示式 e1(精度為 p1,小數字數為 s1)和表示式 e2(精度為 p2,小數字數為 s2)來表示。 非 decimal 型別的任何表示式的精度和小數字數,是對此表示式資料型別定義的精度和小數字數。
32位與64位下各型別長度對比
64 位的優點 64 位的應用程式可以直接訪問 4eb 的記憶體和檔案大小最大達到4 eb 2 的 63 次冪 可以訪問大型資料庫。本文介紹的是64位下c語言開發程式注意事項。1.32 位和 64 位c資料型別 32和64位c語言內建資料型別,如下表所示 上表中第一行的大寫字母和數字含義如下所示 i...
32位與64位下各型別長度對比
64 位的優點 64 位的應用程式可以直接訪問 4eb 的記憶體和檔案大小最大達到4 eb 2 的 63 次冪 可以訪問大型資料庫。本文介紹的是64位下c語言開發程式注意事項。1.32 位和 64 位c資料型別 32和64位c語言內建資料型別,如下表所示 上表中第一行的大寫字母和數字含義如下所示 i...
Linux系統32位與64位資料型別長度比較
linux系統32位與64位gcc編譯器基本資料型別長度對照表 gcc 32位 sizeof char 1 sizeof double 8 sizeof float 4 sizeof int 4 sizeof short 2 sizeof long 4 sizeof long long 8 size...