SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs))
FROM dbo.table
-- WHERE ...
GROUP BY EmployeeID;
Sie können es am Frontend hübsch formatieren. Oder in T-SQL:
;WITH w(e, mw) AS
(
SELECT EmployeeID, SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs))
FROM dbo.table
-- WHERE ...
GROUP BY EmployeeID
)
SELECT EmployeeID = e,
WrkHrs = RTRIM(mw/60) + ':' + RIGHT('0' + RTRIM(mw%60),2)
FROM w;
Sie verwenden jedoch den falschen Datentyp. TIME
wird verwendet, um einen Zeitpunkt anzugeben, nicht ein Intervall oder eine Dauer. Wäre es nicht sinnvoll, ihre Arbeitszeiten in zwei getrennten Spalten zu speichern, StartTime
und EndTime
?