sql - 当日期持续时间增加时,循环需要很多执行时间
问题描述
我有这个函数,它计算 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 秒。
解决方案
推荐阅读
- python - Networkx 旅行商问题 (TSP)
- java - Replacing a file tree component in Java Swing to another
- python - I can't get the closest matches right here...How can i implement difflib right here in a right order?
- powershell - 使用 Powershell 写出两个标题行而不删除现有数据
- asynchronous - Working with multiple chainer results in cypress
- mysql - 如何计算 ID 在不同表的列中出现的次数
- java - How to use driver.findElement to locate an element with below XML?
- python - 使用 dask 将镶木地板文件拆分成更小的块
- python - pyspark, udf crashing while parsing timestamp value
- c++ - 如何正确地将自由类型位图缓冲区转换为 opencv Mat?