在sql查询中找到两次的差异

时间:2015-03-06 06:23:52

标签: sql-server

我有一个表DailyPerformanceReport(带有两个时间列),在SQL Server 2008R2中有这样的数据

Table

我希望将InPunch和OutPunch作为WorkHRs(以时间格式)区别开来.Myexpected output enter image description here

2 个答案:

答案 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'))