SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs))
FROM dbo.table
-- WHERE ...
GROUP BY EmployeeID;
Anda dapat memformatnya dengan cantik di bagian depan. Atau di 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;
Namun, Anda menggunakan tipe data yang salah. TIME
digunakan untuk menunjukkan titik waktu, bukan interval atau durasi. Bukankah masuk akal untuk menyimpan jam kerja mereka di dua kolom berbeda, StartTime
dan EndTime
?