2017-12-12 17 views
0

を作成丸めている:式Iは、SQLサーバにこの式を有する、間違った結果

((FP.Month1/30) * (30 - DAY(GETDATE()))) + FP.month2 + ((FP.month3/30) * (Day(GETDATE()))) 

私は結果をテストされており、彼らは少し間違って出てきています。だから私は、最小限の量にこのことを決裂:

(FP.Month1/30) 

をし、私はそれを実行したときに、それが出て間違っていますが、これは間違って出てくる理由は、それが小数点を無視しているです。 Month1は140なので、それを30で割ると、4.666667として出てくるはずですが、代わりに4として出てきます。だからそれはもちろん、結果が間違った結果になる総公式になります。 SQL Serverで小数点以下も使用する方法を確認するにはどうすればよいですか。

参考までに、これが影響するかどうかはわかりませんが、最終結果を整数に丸める必要があります。

答えて

2

SQL Serverは整数除算を行います。だからではなく、30の、30.0を使用します。

(FP.Month1/30.0) 

注意点として、30.4は、月の日数のより良い推定値です。