SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs))
FROM dbo.table
-- WHERE ...
GROUP BY EmployeeID;
Je kunt het mooi aan de voorkant formatteren. Of 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;
U gebruikt echter het verkeerde gegevenstype. TIME
wordt gebruikt om een punt in de tijd aan te geven, niet een interval of duur. Zou het niet logisch zijn om hun werkuren in twee verschillende kolommen op te slaan, StartTime
en EndTime
?