Ich habe die folgende Formel auf Stack-Überlauf gefunden, die ich Werte summiert Zeit hat dazu beigetragen, die es nach Tweaking leicht brillant funktioniert:SQL Server - Summe Zeitanzeige Ausgabe
SELECT CAST(t.TotalHours/3600 AS VARCHAR(2)) + ':'
+ CAST(t.TotalHours%3600/60 AS VARCHAR(2)) + ':00'
FROM (SELECT SUM(DATEDIFF(S, '00:00', WorkingHours)) AS TotalHours
FROM workhour) t
von SQL How to sum times from Time datatype columns in hh:mm:ss
Wie auch immer, Ich habe jetzt ein Problem in Bezug auf die Formatierung. Wenn ich diese Abfrage auf meine Daten ausführen, gibt es die Zeitsumme in diesem Format: HH:M:SS (32:0:00)
Meine Daten:
WorkingHours
05:30
06:00
05:30
08:00
07:00
Erwartete Ausgabe:
TotalHours
32:00:00
Wie Sie bemerken, meine Daten besteht nicht aus Sekunden, also habe ich das am Ende als String hinzugefügt. Es ist das Protokoll, das mir ein Problem zu machen scheint.
Frage: Gibt es eine Möglichkeit, die oben forumla zu zwicken, damit ich die Gesamt als HH:MM:SS -> 32:00:00
bekommen
HINWEIS anzuzeigen: Dies geschieht, wenn das Minutenfeld 0 zurückgibt, oder hat ein Wert von weniger als 10 ...
Vielen Dank für die Hilfe im Voraus. Ich verwende SQL Server 2016 Data Center und habe die Daten in meiner Tabelle als Varchar im Format HH: MM, genannt WorkingHours, gespeichert.
Arbeits Antwort:
SELECT CAST(t.TotalHours/3600 AS VARCHAR(2)) + ':' +
RIGHT('000' + CAST (t.TotalHours%3600/60 AS VARCHAR(2)), 2) + ':00'
FROM (SELECT SUM(DATEDIFF(S, '00:00', TotalHours)) AS TotalHours
FROM workhour) t
Können Sie Ihre ursprünglichen Daten und erwartete Ausgabe zeigen – TheGameiswar
Seien Sie methodisch. Hol dir die Stunden, Minuten und Sekunden einzeln und kombiniere sie dann. –
meine Daten sind die ursprünglichen Daten aus meiner Tabelle, und die erwartete Ausgabe wurde unter – Crezzer7