2011-10-23 207 views
2

我需要準備一份年度管理報告,以顯示所有員工在時間範圍和月份內的總加班(OT)工作小時數和分鐘數。ASP - 如何計算時間範圍內的總小時數和分鐘數

在MS SQL時間格式2000數據庫如下:

,每項記錄都包含日期從&時間和日期&時間

報表佈局如下:

我不知道如何劃分和計算時間範圍內的總時數&分鐘,因爲每個OT記錄將重疊幾個時間範圍和日期。

請幫忙。謝謝。

+0

可能會更有意義有範圍的,比如'00: 00 - 00:59','01:00 - 01:59'等,而不是'00:01 - 01:00','01:01 - 02:00'等等。至少,前者比後者(我認爲)。 –

回答

1

的SQL DateDiff function可用於計算的分鐘數,即

declare @fromDT datetime 
declare @toDT datetime 
set @fromDT = '10/22/2011 18:30' 
set @toDT = '10/22/2011 22:45' 

select @fromDT,@toDT,DATEDIFF(mi,@fromDt,@toDt), 
    ltrim(str(DATEDIFF(mi,@fromDt,@toDt)/60))+':'+ 
    ltrim(str(DATEDIFF(mi,@fromDt,@toDt)%60)) as HoursMin 

返回

StartTime     End Time   Mins HoursMin 
2011-10-22 18:30:00.000 2011-10-22 22:45:00.000 255  4:15 
+0

謝謝。如果ot記錄從2011-01-01 09:00開始到2011-01-01 11:30。我如何在09:01-10:00加1小時,10:01-11:00加1小時,11:01-11:30加30分鐘用於年度報告? –

相關問題