1

我正在尝试制作一个假期预订应用程序,它运行一个 JQuery UI 日历。他们选择的开始日期和结束日期将传递给 SQL,SQL 将假期放入请求的表中。唯一的问题是,如果我输入了开始日期和结束日期,则没有考虑到周末。该系统的每个用户每个日历年都有 21 天的假期津贴,它也会扣除周末的假期。这是当前代码。

SET @DateDiff = (DATEDIFF(Day,@StartDate,@EndDate) +1)

上面是 date-diff 语句,下面是插入代码

BEGIN
    INSERT INTO Holidays(EmployeeID, StartDate, EndDate, Duration,Status)
    VALUES(@EmployeeID, @StartDate, @EndDate, @DateDiff,'PE')

    UPDATE Employees
    SET AnnualDaysHolidayAllowance = AnnualDaysHolidayAllowance - @DateDiff
    WHERE ID = @EmployeeID
    SELECT 'successful' AS result
END

业务检查和规则有更多代码,但这是我需要尝试修复的唯一部分。我对编码比较陌生,所以如果可能的话,请留下解释以帮助我理解修复,谢谢。

4

1 回答 1

1

在发布的链接上找到了解决方案。来源:计算两个日期之间的工作日 答案(不是我自己的工作)

    SET @DateDiff = (SELECT
                    (DATEDIFF(dd, @StartDate, @EndDate) + 1)
                    -(DATEDIFF(wk, @StartDate, @EndDate) * 2)
                    -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
                    -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END))
于 2014-04-01T10:19:18.560 回答