sql >> データベース >  >> RDS >> Sqlserver

SQL ServerでMONEYまたはDECIMAL(x、y)データ型を選択する必要がありますか?

    決してお金を使うべきではありません。それは正確ではなく、純粋なゴミです。常に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
    


    1. mysql_real_escape_string VSaddslashes

    2. Linux /MacからAmazonEC2でMySQLに接続するにはどうすればよいですか?

    3. SQLServerインスタンス上のすべてのデータベースから主キー制約のリストを取得する方法-SQLServer/TSQLチュートリアルパート60

    4. スライドデッキと#SQLintersectionのサンプル