/ / declare @decimal decimal(4,3)= 10.0 - sql-server、decimal

@decimal decimal(4,3)= 10.0 - sql-server、decimalを宣言する

誰もがなぜこれを言うことができます:@ decimal(4,3)= 10がSQL Serverでエラーを検出すると宣言します:

msg 8115レベル16の状態8行目の1の算術オーバーフローエラー。intをデータ型数値に変換しています

@Decimal decimal(4,3)= 10.0と宣言してもこのエラーが発生しました:

msg 8115レベル16の状態8行目1算術オーバーフローエラー数値をデータ型数値に変換しています

前もって感謝します

回答:

回答№1の場合は3

小数点(4,3)は合計4桁、小数点以下3桁です。見る 小数および数値 SQL Serverのオンラインドキュメント、特に精度と規模について

-9.999〜+ 9.999の値を保持します。値10をサポートするには、小数点(5,3)を使用できます。


回答№2の場合は1

Rhysによって返されるように、小数点(m、n)は小数点の右側にn桁の合計m桁を格納できます。

だから小数点(4,3)は可能な範囲の値を持つ-99.999から+9.999、合計4桁、小数点以下3桁です。 10を格納するにはDecimal(5,3)を使用する必要がありますが、これによって99.999