-- =============================================
-- Author: LJB
-- Create date:2019年3月19日14:29:23
-- Description: 获取工作日
-- =============================================
CREATE FUNCTION [dbo].[f_GetWorkday](@bdate DATETIME, @edate DATETIME,@workDayEnum INT)
RETURNS INT
AS
BEGIN
DECLARE @workdays INT;
DECLARE @saturdayCount INT;
IF(@edate <= CONVERT(datetime,'1900-01-01'))
SET @edate = GETDATE();
IF(@workDayEnum = 1) --周六、周日休息
BEGIN
SET @workdays = 0;
END
ELSE IF(@workDayEnum = 2) --周六、周日不休息
BEGIN
SET @workdays = DATEDIFF(day,@bdate,@edate) + 1;
RETURN @workdays;
END
ELSE --周六不休息
BEGIN
SET @workdays = datediff(wk,@bdate,@edate);--两个时间内有多少个周六
END
--一周5个工作日计算
while DATEDIFF(d, @bdate, @edate) >= 0
begin
if datepart(dw,@bdate) > 1 and datepart(dw,@bdate) < 7
begin
select @workdays=@workdays+1
end
select @bdate=dateadd(day,1,@bdate)
end
RETURN @workdays;
END
GO
SqlServer 获取工作日(周六、周日休息,周六日不休息,周六不休息)
原创
©著作权归作者所有:来自51CTO博客作者″仅此、而已❀的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【Canvas与艺术】六鱼六燕铁艺壁画
用Html5/Canvas绘制带玻璃光的六鱼六燕铁艺壁画。
canvas 铁艺 壁画 玻璃光