• SqlServer 获取工作日(周六、周日休息,周六日不休息,周六不休息)


     
    -- =============================================
    -- 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


     

  • 相关阅读:
    指针和数组的关系
    深入学习数组
    const关键字与指针
    野指针是什么
    指针带来的一些符号的理解
    指针的本质
    内存管理之堆
    内存管理之栈
    元类
    断点调式和面向对象进阶
  • 原文地址:https://www.cnblogs.com/jincieryi/p/12679908.html
Copyright © 2020-2023  润新知