3

SO で他の応答を見たにもかかわらず、分を 10 進数に変換する際に問題が発生しています。

select cast(datediff(minute, min(start_time), min(complete_time)) as decimal (10,10)) 
from TRACKED_OBJECT_HISTORY TOH1 
where TOH1.op_name = 'Assembly'

結果は返されますが、1.86、3.99、5.03 などの数値ではなく、常に 2.00、4.00、5.00 などの結果が得られます。事後変換していると思います(変換機能も試してみましたが無駄でした)。何かご意見は?

4

1 に答える 1

7

Datediffは、浮動小数点数や数値ではなく整数を返します。

必要なものを取得するには、おそらく数秒で差分を実行してから除算する必要があります。

select cast(datediff(second, min(start_time), min(complete_time))/60.0 as decimal (10,10))
from TRACKED_OBJECT_HISTORY TOH1 where TOH1.op_name = 'Assembly'
于 2012-08-10T01:24:09.830 に答える