【SQL Server】int・decimal・money 数値型(整数・小数・金額)の違いとは

数値型(整数・小数・金額) int・decimal・float・money

SQL Serverの数値型にint、decimal(numeric)、float、moneyがあります。

  • int
  • decimal
  • float
  • money

それぞれの数値型の違いを解説します。

int (整数)

SQL Serverの整数は「int」 を使います。最大2,147,483,647です。これを超える場合は、「bigint」型を使用します。「int」より小さい「smallint」型もあります。

一般的にSQL Serverで整数型といえば「int」になります。

  • 例1・・・3
  • 例2・・・1,000,000

decimal (小数)

SQL Serverの小数は10進数の「decimal」を使います。

「decimal」のほかにも「numeric」がありますが、「decimal」と「numeric」は同じなので、どちらを使っても良いです。

  • 例1・・・3.1
  • 例2・・・0.00001

float(小数)

SQL Serverの小数は「float」もあります。浮動小数点数値です。浮動小数点数値は概数です。

下の例をみると、「0.00001」は「1E-05」となります。小数を10進数として正確に扱いたい場合や小数点を計算する場合は「decimal」を使うべきです。

  • 例1・・・3.1
  • 例2・・・1E-05 (0.00001)

money

money」は金銭や通貨の値を表す金額データ型です。

  • 例1・・・1,000
  • 例2・・・1,00,000,000

 

SQL Serverの数値型の違い

SQL Serverの数値型・時刻型(int、decimal、money)の違いをまとめます。

範囲 バイト
smallint -32,768~32,767 2
int -2,147,483,648~2,147,483,647 4
bigint -9,223,372,036,854,775,808

~9,223,372,036,854,775,807

8
decimal 10^38 +1 ~ 10^38 – 1 5~17
money -922,337,203,685,477.5808

~922,337,203,685,477.5807

8

詳細はMicrosoft のページを確認してください。

https://learn.microsoft.com/ja-jp/sql/t-sql/data-types/numeric-types?view=sql-server-ver16

以上、SQL Serverの金額データ型 int、decimal、float、moneyの解説でした。

 

コメント

  1. somebody より:

    少数→小数

    ではないですかね?

    • sqlserverマスター より:

      少数→小数でした。
      一部誤りがありましたので修正しました。
      ご指摘ありがとうございます。