我有一个表DailyPerformanceReport(带有两个时间列),在SQL Server 2008R2中有这样的数据
我希望将InPunch和OutPunch作为WorkHRs(以时间格式)区别开来.Myexpected output
答案 0 :(得分:1)
试试这个:
示例数据
CREATE TABLE DailyPerformanceReport(
InPunch TIME,
OutPunch TIME
)
INSERT INTO DailyPerformanceReport VALUES
('09:14:00', '19:22:00'),
('09:54:00', '19:37:00'),
('09:14:00', '18:39:00');
<强> QUERY 强>
SELECT
*,
WorkHRS = CAST(DATEADD(MILLISECOND, DATEDIFF(MILLISECOND, InPunch, OutPunch), 0) AS TIME)
FROM DailyPerformanceReport
<强> RESULT 强>
InPunch OutPunch WorkHRS
---------------- ---------------- ----------------
09:14:00.0000000 19:22:00.0000000 10:08:00.0000000
09:54:00.0000000 19:37:00.0000000 09:43:00.0000000
09:14:00.0000000 18:39:00.0000000 09:25:00.0000000
答案 1 :(得分:0)
您可以尝试使用datediff功能。
select DATEDIFF(MINUTE ,'value1',DateAdd(day, 1, 'value2'))