Sas*_*Sas 26 sql database sql-server
我有一个名为"WrkHrs"的列,数据类型是时间(hh:mm:ss).我想总结一下员工的工作时间.但是因为它的时间数据类型sql server不让我使用像sum(columnname)
.
如何总结sql查询中的时间数据类型?
Aar*_*and 29
SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs))
FROM dbo.table
-- WHERE ...
GROUP BY EmployeeID;
Run Code Online (Sandbox Code Playgroud)
你可以在前端格式化它.或者在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;
Run Code Online (Sandbox Code Playgroud)
但是,您使用的是错误的数据类型.TIME
用于表示时间点,而不是间隔或持续时间.那岂不是有意义的存储他们的工作时间在两个不同的列,StartTime
和EndTime
?