web-dev-qa-db-ja.com

SQL Server 2008 R2のnumeric(18、0)とは何ですか

このデータ型の列を持つテーブルを見つけました

numeric(18, 0)

それは何ですか?そして、なぜ018はどういう意味ですか

私はすでにこの質問を確認しています SQL Serverでの数値、浮動小数点数、および10進数の違い しかし、それを理解できませんでした。

その列に(-10)を追加できますか?

その列にすべての負の数を追加できますか?

その列に正の数を追加できますか?

アップデート1

これは、その列で見つけたデータのサンプルです

100
263
13
2
9
4
3
3
28
15
33
16
135
50
64
60
100
500
150

更新2 -および+を使用することはできますか?

39
Agnieszka Polec

最初の値はprecisionで、2番目はscale なので、18,0は基本的に18桁で、小数点以下は0桁です。たとえば、18,2がある場合、18桁の数字があり、そのうち2桁は小数点以下になります...

18,2の例:1234567890123456.12

numericdecimalにはfunctionalの違いはありません。他に名前があり、数値が最初に来たことを思い出します。以前のバージョンのように。

そして答えるには、「その列に(-10)を追加できますか?」-はい、できます。

64
christiandev

このページ かなりよく説明しています。

numericとして、そのフィールドに格納できる許容範囲は-10^38 +110^38 - 1です。

カッコ内の最初の数字は、格納される合計桁数です。小数の両側をカウントします。この場合は18です。そのため、10進数の前に18桁の数字、または10進数の後の18桁の数字、またはその間の組み合わせを持つことができます。

括弧内の2番目の数字は、小数点以下に格納される合計桁数です。この場合、数値は0であるため、基本的には整数のみがこのフィールドに格納できることを意味します。

したがって、この特定のフィールドに保存できる範囲は-(10^18 - 1)から(10^18 - 1)です

または-999999999999999999から999999999999999999整数のみ

18
Dan