SQL: get DATEDIFF, um nicht wieder negative Werte

Ich habe eine Abfrage, in der ich bin, ziehen die Laufzeit eines Programms. Die Datenbank enthält seine Startzeit und sein Ende die Zeit. Ich möchte die gesamte Zeit für die Ausführung.
Bisher habe ich:

SELECT startTime, endTime,
cast(datediff(hh,starttime,endtime) as varchar)
+':'
+cast(datediff(mi,starttime,endtime)-60*datediff(hh,starttime,endtime) as varchar) AS RUNTIME
FROM applog
WHERE runID = 33871
ORDER BY startTime DESC 

Wenn ich diese ausführen bekomme ich die erwarteten Werte und auch einige unerwartete.
Zum Beispiel, wenn starttime = 2008-11-02 15:59:59.790 und endtime = 2008-11-02 19:05:41.857 dann ist die Laufzeit = 4:-54.
Wie bekomme ich eine quere in MS SQL-SMS, um den Rückgabewert 3:06 für diesen Fall?

Dank.

Eoin Campbell wählte ich als die Antwort ist die bulletproof für meine Bedürfnisse. David B ' s do-Lage als gut.

InformationsquelleAutor wergeld | 2008-11-03
Schreibe einen Kommentar