/*取得日期區間內預設工作日*/
CREATE FUNCTION dbo.PL_getDefaultWorkingDays
(
    @StartDate DATE,
    @EndDate   DATE
)
RETURNS INT
AS
BEGIN
    RETURN
        (DATEDIFF(DAY, @StartDate, @EndDate) + 1)
        -(DATEDIFF(WEEK, @StartDate, @EndDate) * 2)
        -(CASE WHEN DATEPART(WEEKDAY, @StartDate) = 1 THEN 1 ELSE 0 END)
        -(CASE WHEN DATEPART(WEEKDAY, @EndDate) = 7 THEN 1 ELSE 0 END)
END
GO

 

SELECT dbo.PL_getDefaultWorkingDays('2018/01/01','2018/01/31')

得:23

 


相关文章