none
NUMERIC型とDECIMAL型の違いについて RRS feed

  • 質問

  • いつもお世話になっております。

    SQL Server 2008を使用して開発しています。

    浮動小数点の値を正確に保持したいため、
    NUMERIC 型かDECIMAL 型を利用しようと思っております。

    そこで質問なのですが、
    MSDNの説明を読んだのですが、それぞれのデータ型の違いが分かりませんでした。
    どのように使い分けたら良いのでしょうか?

    具体的にしたいことは、指定したとおりの制度で値を持ってほしいです。
    例えば、小数点の左側に5桁持って、小数点の右側に2桁まで持ちたいということです。

    ○ 12345.67
    × 123456.789
    ○ 123.45

    ※ ○:登録可能、×:登録不可能

    今回のケースであれば、
    NUMERIC 型かDECIMAL 型、どちらを使用すれば良いのでしょうか?

    もしご存知でしたら、教えて頂けませんか?
    ぜひよろしくお願い致します。

    2010年5月5日 7:33

回答

  • SQL Server 2008 を利用するかぎり、DECIMAL と NUMERIC はまったく同じものです。(リファレンスにもはっきりと書かれていますよね?)

    いわゆる SQL-92 に準拠したデータベースなら全部同じだと思いますが、それ以前のデータベースだと DECIMAL 型は存在しなかったり、NUMERIC 型がデータベース毎に仕様が違ったりする場合もあるようですが、最近はそういった古いデータベースにアクセスすることも少ないかと思います。

    そういった、古いデータベースでも動作するようにしたいような要求がなく、SQL Server 2008 を利用されているだけであれば、まったく同じものですのでどちらを使用しても問題ありません。

    • 回答としてマーク コンドル 2010年5月5日 10:18
    2010年5月5日 9:43

すべての返信

  • SQL Server 2008 を利用するかぎり、DECIMAL と NUMERIC はまったく同じものです。(リファレンスにもはっきりと書かれていますよね?)

    いわゆる SQL-92 に準拠したデータベースなら全部同じだと思いますが、それ以前のデータベースだと DECIMAL 型は存在しなかったり、NUMERIC 型がデータベース毎に仕様が違ったりする場合もあるようですが、最近はそういった古いデータベースにアクセスすることも少ないかと思います。

    そういった、古いデータベースでも動作するようにしたいような要求がなく、SQL Server 2008 を利用されているだけであれば、まったく同じものですのでどちらを使用しても問題ありません。

    • 回答としてマーク コンドル 2010年5月5日 10:18
    2010年5月5日 9:43
  • K. Takaoka様

    ありがとうございました。

    numericdecimal と同じ機能を持ちます。

    確かに同じだと書かれていますね。見逃しておりました。

    大変勉強になりました。ありがとうございます。

    2010年5月5日 10:17