我正在尝试制作假日预订应用程序并运行JQuery UI日历。他们选择的星号和结束日期将传递给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
业务检查和规则的代码更多,但这是我需要尝试和修复的唯一部分。我对编码比较新,所以如果可能请留下解释,以帮助我理解修复,谢谢。
答案 0 :(得分:1)
在发布的链接上找到解决方案。 来源:Count work days between two dates 答案(不是我自己的工作)
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))