16

SQL Server 2008 R2 の型についてDECIMAL(そしておそらく)単純に質問があります。NUMERIC

MSDN は次のように述べています。

(位取り) 小数点の右側に格納できる 10 進数の最大桁数。Scale は 0 から p までの値でなければなりません。

私はこれを次のように理解しています:

  • 私が持っている場合DECIMAL(10, 5)-12345.12345または12345678.91を保存できます。
  • DECIMAL(5, 5)が持っている場合-12345、1234.5、または1.2345などを使用できます...

それは明らかですか?

しかし、私はこのエラーメッセージを受け取りました:

SELECT CAST(2.8514 AS DECIMAL(5,5))

数値をデータ型数値に変換中に算術オーバーフロー エラーが発生しました。

5,5 は、最大 5 桁、小数点以下最大 5 桁まで使用できることを意味すると考えました。

私が試したように:

SELECT CAST(12.851 AS DECIMAL(6,5)) - overflows too

でも

SELECT CAST(1.23456 AS DECIMAL(6,5)) - is OK.

それで、真実は何ですか?

DECIMAL(a,b)私は数字をaまで持つことができ、そのうちのbだけが小数点まで右にあると言っています(そして小数点まで左にabがあります)?

どこにでもコピーされているドキュメントのステートメントについて、私は本当に混乱しています。この簡単なことを説明してください。

どうもありがとう!

4

1 に答える 1