2014-10-18 49 views
0

我已經創建了一個過程,它返回2個時間之間的時間差,例如ShiftStartTime,ShiftEndtime。如何查找總時差bwteen日期範圍

現在的問題是,如果我傳遞2個日期範圍,那麼我將如何計算這兩個日期之間的總shiftTime TimeDifference爲我今天返回480分鐘,但我想找到3天或更長時間的總ShiftDifference,那麼我將如何添加TimeDifference超過1天?

CREATE PROCEDURE GetShiftTotalDuration 

@ShiftID int = 9, 
@FromDate DateTime, 
@ToDate DateTime 

AS 
BEGIN 

    Declare @TimeDifference int 
    Declare @ShiftStartTime time 
    Declare @ShiftEndTime time 

    Set @ShiftStartTime = (Select DeparmentShiftsHistory.StartTime from DeparmentShiftsHistory 
          where DeparmentShiftsHistory.Shift_ID= 9) 
    Set @ShiftEndTime = (Select DeparmentShiftsHistory.EndTime from DeparmentShiftsHistory 
          where DeparmentShiftsHistory.Shift_ID= 9) 
    Set @TimeDifference = (Select DATEDIFF(mi,@ShiftStartTime,@ShiftEndTime)) --Returns time difference in seconds 



END 
GO 
+0

ü沒有提到日期之間的差使用來自date&todate的輸入參數。如果我沒有錯,你需要補充說明在部門移動表的哪一部分,你的問題不清楚!! – 2014-10-18 06:55:09

回答

0

我會計算這些2日期間共shiftTime

你提到你會計算兩個日期之間,但在你的代碼的差異聲明的變量作爲time

Declare @ShiftStartTime time 
Declare @ShiftEndTime time 

因此DATEDIFF(mi,@ShiftStartTime,@ShiftEndTime)只有時間差異不是日期

如果你想獲得你需要使用的數據類型datetime

在一個側面說明,你已經宣佈它沒有在proocedure被使用的輸入參數,通過Pradeep