小数点の左側に最大 5 を返し、常に右側に 3 を返したい変数があります。
CONVERT(VARCHAR(14),CONVERT(DECIMAL(8,3),
DATEDIFF(MILLISECOND,@ProcessTime,GETDATE()))/@OneThousand)
現在、変数は次のように定義されています
DECLARE @ProcessTime DATETIME
DECLARE @OneThousand DECIMAL(8,3)
SET @OneThousand = 1000.000
これは常に次のようなものを返します
0.003000000000
左の関数で問題を解決できると思いますが、私の質問は、なぜこれが起こるのかということです。定義された 10 進数の最小変数@OneThousand
が 3 の場合、戻り値は 3 桁の小数点を持つべきではありませんか?