開始時間と終了時間がたくさんあります。
Start End Delta
20:47:22 22:47:02 120
22:49:12 0:48:47 -1321
0:50:42 2:50:22 120
...
23:11:07 2:10:44 -1261
私が使用するコードは次のとおりです(時間はvarcharであるため)
CONVERT(VARCHAR(8), DATEDIFF(minute, max(max_time), min(min_time)) ,114)
as delta_time,
しかし、ご覧のとおり、一晩であるため、結果はマイナスになります。119分と179分(上記の例)の正しい結果を得ることについての考え。
デルタが負の場合をチェックするcaseステートメントを使用することを考えました。負の場合は、終了時間に24時間を追加してから、減算してみてください。
CASE WHEN DATEDIFF(minute, max(max_time), min(min_time)) < 0 THEN
DATEADD(minute, 1440, min(min_time))
ELSE 0 END AS deltatest
ただし、SQLServerが時刻を1900-01-0200:48:47.000に変更するだけなので、このコードは機能しません(翌日、24:48:47のようなものではありません)。何かご意見は?CASEステートメントに変換を追加する方法はありますか?ありがとう。