SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs))
FROM dbo.table
-- WHERE ...
GROUP BY EmployeeID;
Bạn có thể định dạng nó khá đẹp trên giao diện người dùng. Hoặc trong 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;
Tuy nhiên, bạn đang sử dụng sai kiểu dữ liệu. TIME
được sử dụng để chỉ một điểm trong thời gian, không phải khoảng thời gian hoặc khoảng thời gian. Sẽ không hợp lý nếu lưu trữ giờ làm việc của họ trong hai cột riêng biệt, StartTime
và EndTime
?