我创建了一个程序,它返回2个时间间隔的时差,即ShiftStartTime,ShiftEndtime。
现在的问题是,如果我通过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 :(得分:0)
我将计算这两个日期之间的总shiftTime
您提到您将计算两个日期之间的差异,但在您的代码中,您将变量声明为time
Declare @ShiftStartTime time
Declare @ShiftEndTime time
因此DATEDIFF(mi,@ShiftStartTime,@ShiftEndTime)
只是时间之间的差异而不是日期
如果您希望获得日期之间的差异,则需要使用datetime
数据类型
在旁注中,您已声明了Pradeep
中提到的尚未在程序中使用的输入参数