0
我有一大堆的開始和結束時間:SQL減去OverNight時間(僅返回分鐘)擺脫負面時間?
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語句來檢查delta是否爲負數。如果是負值,則在結束時間內添加24小時,然後嘗試減去。
CASE WHEN DATEDIFF(minute, max(max_time), min(min_time)) < 0 THEN
DATEADD(minute, 1440, min(min_time))
ELSE 0 END AS deltatest
但是這個代碼不工作,因爲SQL Server的只是改變的時間:1900年1月2日00:48:47.000(第二天,並不像24:48:47,這是我想要的是)。有什麼想法嗎?有什麼方法可以將轉換添加到CASE語句?謝謝。
是,這一工程。 – akwarywo