2014-08-27 50 views
0

有任何鏈接可以幫助我或指向正確的方向嗎?SUM(時間(0))在SQL Server中

我很難讓我的桌子正常工作。

我有一個時鐘系統,我試圖在Visual Studio中創建一個報表。

我成功地構建了報表查看器應用程序,但在SQL中,我遇到以下問題。

我有一個表叫ClockTimes

DeviceID Clock Event CLockIN   CLockOUT   TimeWorked SeqNo  DriverId  Company Fleet_Code FirstName LastName Employee_no ID_Tag 
58041  IN   25/08/2014 08:02 25/08/2014 17:23 09:20:56 1730183296 000016A63DF6 CompA FleetA  Andrias  NA   5001  DF6 
58041  IN   14/08/2014 12:06 14/08/2014 12:06 00:00:19 1720446507 0000157CBEF7 CompA FleetA  Daniel  NA   5002  EF7 
12676  IN   14/07/2014 12:04 14/07/2014 12:04 00:00:10 1695160943 PULSIT005  CompB CompB  Pieter  NA   1004  C2C 
58041  IN   25/08/2014 08:01 25/08/2014 17:23 09:21:49 1730182991 000015F463D3 CompA FleetA  Quenten  NA   5003  3D3 
58041  IN   25/08/2014 08:02 25/08/2014 17:23 09:20:51 1730183710 000016A6C320 CompA FleetA  Drikus  NA   5004  320 
58041  IN   27/08/2014 08:10 NULL    NULL  1732093463 000016A6A9CA CompA FleetA  Martin  NA   5005  9CA 
12676  IN   14/07/2014 15:24 14/07/2014 15:25 00:00:37 1695329075 PULSIT006  CompB CompB  Bonita  NA   1008  969 
12676  IN   17/07/2014 09:16 17/07/2014 13:46 04:29:30 1697530293 PULSIT010  CompB CompB  Monique  NA   1005  878 
58041  IN   22/08/2014 14:56 25/08/2014 17:23 02:26:55 1728100080 000015F463D3 CompA FleetA  Quenten  NA   5003  3D3 
58041  IN   25/08/2014 08:02 25/08/2014 17:23 09:20:48 1730183606 000016A6A9CA CompA FleetA  Martin  NA   5005  9CA 

有了這個,我想建立一個報告,我得到誰主頻與開始和結束日期的選定時間段和獲得的總時間的人在格式HH工作:MM:SS

實施例在此示出:

Employee_no Company Fleet_Code FirstName LastName CLockIN    CLockOUT   Total_Time_Worked 
1004  CompB CompB  Pieter  NA   14/07/2014 12:04 14/07/2014 12:04 00:00:10 
1005  CompB CompB  Monique  NA   17/07/2014 09:16 17/07/2014 13:46 04:29:30 
1008  CompB CompB  Bonita  NA   14/07/2014 15:24 14/07/2014 15:25 00:00:37 
5001  CompA FleetA  Andrias  NA   25/08/2014 08:02 25/08/2014 17:23 09:20:56 
5002  CompA FleetA  Daniel  NA   14/08/2014 12:06 14/08/2014 12:06 00:00:19 
5003  CompA FleetA  Quenten  NA   25/08/2014 08:01 25/08/2014 17:23 11:48:44 
5004  CompA FleetA  Drikus  NA   25/08/2014 08:02 25/08/2014 17:23 09:20:51 
5005  CompA FleetA  Martin  NA   25/08/2014 08:02 25/08/2014 17:23 09:20:48 

因此,如果一個人計時超過一次它必須被分組到單個多進入網格,但在開始和結束日期之間的所有工作時間內積累了時間。

+0

我使用SQL 2012 – user3676496 2014-08-28 05:49:43

回答

0

創建一些示例數據:

DECLARE @MyTable TABLE 
(
    StartDate DATETIME, 
    EndDate DATETIME 
) 

INSERT INTO @MyTable 
VALUES 
('08/24/2014 08:02:21', '08/25/2014 17:23:15'); 

這個查詢將拆分時間爲天/小時/分/秒

SELECT *, 
    DATEDIFF(DAY, StartDate, EndDate) AS Days, 
    (DATEDIFF(HOUR, StartDate, EndDate) % 24) Hours, 
    (DATEDIFF(MINUTE, StartDate, EndDate) % 60) Minutes, 
    (DATEDIFF(SECOND, StartDate, EndDate) % 60) Seconds 
FROM @MyTable 

這裏是輸出:

StartDate    EndDate     Days Hours Minutes Seconds 
2014-08-24 08:02:21.000 2014-08-25 17:23:15.000 1 9  21  54 
+0

謝謝你這是我需要的,我沒有使用這個查詢,但沒有明白它,我用它作爲DATEDIFF( DATEDIFF(HOUR,StartDate,EndDate)AS小時,DATEDIFF(MINUTE,StartDate,EndDate)AS分鐘,DATEDIFF(SECOND,StartDate,EndDate)AS秒。 – user3676496 2014-08-28 06:06:26

+0

%是一個mod函數,我用它來獲取最後一天的額外小時數,最後一小時的額外分鐘數以及最後一分鐘的額外秒數。 – 2014-08-28 15:24:03