2

10進数(28,15)型のフィールドxを持つ単純なテーブルを作成しました

次のクエリを実行して値を挿入します。

テストテーブル値に挿入(1234567890123)

テストテーブルIから選択を行うと、フィールドxの値は次のようになります。

1234567890123.000000000000000

SQLサーバーが必要でない場合に小数点以下のゼロを格納しないように指定する方法はありますか(おそらくテーブルの設計で)?つまり、選択を行うと、データは次のように返されます。

1234567890123

また、なぜテストテーブル値(12345678901234)に挿入すると次のエラーが発生するのですか?

数値をデータ型数値に変換する際の算術オーバーフローエラー。

4

2 に答える 2

1

また、なぜテストテーブル値(12345678901234)に挿入すると次のエラーが発生するのですか?

小数点以下15桁で合計幅28を指定しました。それは小数点の前に最大13桁を残します。

必要がない場合、SQLサーバーが小数点以下のゼロを格納しないように指定する方法はありますか?

厳密に言えば、「10進数」は固定精度の形式であるため、任意の数値が他の数値とまったく同じスペースを占有します(MSDNを参照)。

于 2012-07-30T13:10:09.390 に答える
0

以下のクエリを試してください。それはうまくいきます...

   select cast(1234567890123.000000000000000 as decimal)
于 2012-07-30T13:03:49.593 に答える