由于工作需要计算两个日期之间的时间差, 不包含周末, 在网上找了一下,稍微修改了一下计算两个时间之间的工作日小时数. 有需要的可以参考一下.CREATE FUNCTION DI_FN_GET_WorkDay ( @begin DATETIME , @end DATETIME )RETURNS INTAS BEGIN DECLARE @i INT , @j INT SET @i = 0 SET @j = 0 IF @end > @begin BEGIN WHILE DATEDIFF(d, DATEADD(d,
@i, @begin), @end) <> 0 BEGIN IF DATEPART(weekday, DATEADD(d, @i, @begin)) NOT IN ( 1, 7 ) SET @j = @j + 1 SET @i = @i + 1 END END SELECT @j = ( @j + 1 ) * 24 - DATEDIFF(HH, CAST(CONVERT(VARCHAR(10), @begin, 120) AS DATETIME), @begin) - DATEDIFF(HH, @end,
CAST(CONVERT(VARCHAR(10), @end + 1, 120) AS DATETIME)) RETURN @j END
SQL SERVER 计算除去周末之后的时间差
最新推荐文章于 2022-07-05 08:23:25 发布