Расчеты без учета выходных

Я пытаюсь создать приложение для бронирования праздников, и оно запускается из календаря пользовательского интерфейса JQuery. выбранная ими звезда и дата окончания передаются в SQL, где он помещает выходные данные в запрошенную таблицу. Единственная проблема заключается в том, что если указать дату начала и окончания, выходные дни не учитываются. каждому пользователю системы предоставляется скидка на 21 день в течение календарного года, и он также вычитает выходные дни. вот текущий код

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

Выше приведен оператор сравнения даты, а ниже - код вставки

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

Существует больше кода для бизнес-проверок и правил, но это единственная часть, которую мне нужно попробовать и исправить. Я относительно новичок в кодировании, поэтому, если возможно, пожалуйста, оставьте объяснение, чтобы помочь мне понять исправление, спасибо.

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))
Другие вопросы по тегам