[解決済み] SQL Serverでは、MONEYとDECIMAL(x,y)のどちらをデータ型として選択すべきでしょうか?
2022-03-19 19:57:20
質問
の違いは本当にあるのでしょうか?
money
のようなデータ型と
decimal(19,4)
(moneyが内部で使っているものだと思います)。
私が認識しているのは
money
はSQL Serverに特化したものです。どちらを選ぶか、やむを得ない理由があるかどうかを知りたいのです。ほとんどのSQL Serverサンプル(AdventureWorksデータベースなど)は、SQL Serverを使用しています。
money
であり
decimal
は、価格情報などのために使用されます。
このままmoneyデータ型を使い続けるべきなのか、それとも10進数で代用するメリットがあるのでしょうか?お金の方が入力する文字数が少なくて済みますが、それは正当な理由ではありません :)
どのように解決するのですか?
お金は絶対に使ってはいけません。常に10進数や数値を使ってください。
これを実行すると、私が言いたいことがわかります。
DECLARE
@mon1 MONEY,
@mon2 MONEY,
@mon3 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,4),
@num2 DECIMAL(19,4),
@num3 DECIMAL(19,4),
@num4 DECIMAL(19,4)
SELECT
@mon1 = 100, @mon2 = 339, @mon3 = 10000,
@num1 = 100, @num2 = 339, @num3 = 10000
SET @mon4 = @mon1/@mon2*@mon3
SET @num4 = @num1/@num2*@num3
SELECT @mon4 AS moneyresult,
@num4 AS numericresult
出力されます。2949.0000 2949.8525
お金をお金で割らないという人がいましたが、その人へ。
これは相関関係を計算するための私のクエリの1つですが、これをお金に変えると間違った結果が得られます。
select t1.index_id,t2.index_id,(avg(t1.monret*t2.monret)
-(avg(t1.monret) * avg(t2.monret)))
/((sqrt(avg(square(t1.monret)) - square(avg(t1.monret))))
*(sqrt(avg(square(t2.monret)) - square(avg(t2.monret))))),
current_timestamp,@MaxDate
from Table1 t1 join Table1 t2 on t1.Date = traDate
group by t1.index_id,t2.index_id
関連
-
[解決済み] SQL Serverのタイムスタンプ列をdatetime形式に変換する方法
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] SQL Server の DataTypes に相当する C# の機能
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 等値演算で "SQL_Latin1_General_CP1_CI_AS" と "Latin1_General_CI_AS" の照合の競合を解決できない
-
[解決済み] MS SQL Server 2005で行のSNoを自動的に設定する方法は?
-
[解決済み] sp_columnsが結果を返さないのはなぜですか?
-
[解決済み] SSISで新しいレコードを挿入する前に、宛先テーブルを空にするにはどうすればよいですか?
-
[解決済み] テーブルの上位1レコードを更新する sql server [重複].
-
[解決済み] SQL Serverは、ビュークエリでLEFT JOINをLEFT OUTER JOINに置き換えます。
-
[解決済み] SQL Server Management StudioでIntelliSenseが機能しない
-
[解決済み] SQL Server リンクサーバーのクエリ例
-
[解決済み] SQL Serverにおけるnumeric、float、decimalの違いについて
-
[解決済み】なぜ.NETはデフォルトで銀行員の丸めを使用するのですか?