我有此功能,可以计算2个日期内的时间。当日期之间的持续时间增加导致代码引发异常时,执行时间将超过。
我希望有人能提供帮助。
CREATE FUNCTION [dbo].[fnCalTotalOTHoursSpent] (@empCode INT, @StartDate DATETIME, @EndDate DATETIME) RETURNS INT
AS
BEGIN
DECLARE @Result INT = '0'
WHILE @StartDate < @EndDate
BEGIN
SELECT @Result = @Result +
SUM(ISNULL(CAST(LTRIM(DATEDIFF(MINUTE, 0, LEFT([dbo].[fnGetOTDuration](CAST (@empCode AS NVARCHAR), @StartDate), 5)))AS INT), 0))
SET @StartDate = @StartDate + 1;
END;
RETURN @Result
END
此功能[dbo].[fnGetOTDuration]
计算一天的时间。对于1至3之间的日期,执行时间为1秒,而当1至6之间的日期,执行时间为3秒。