numeric(x y,y)的長度與位數

2021-09-21 02:42:11 字數 1878 閱讀 4944

在學習sql時:有這樣一句:

1

scorenumeric(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...