Запрос исключает выходные. В запросе:
- Что делает
* 2
в (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)
В разнице в датах (wk, startdate, enddate) * 2) вот как поиск и исключение выходных точно.
Я думаю, что (20 дней- (20/7 = 2,6 * 2 = 5,8 (округление до 6) -0-0) кратко (20-6-0-0 = 14 дней) правильно. Но как именно он идентифицировал сби солнце. Я прав или нет. Мой вопрос, почему умножение на 2, почему не может с 3 или 4?
Запрос работает правильно. Я пропускаю вещи в запросе, чтобы понять. Пожалуйста, посмотрите запроси объясни ясно.
SELECT
Startdate, Enddate,
(DATEDIFF(dd, Startdate, Enddate)) -
(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) AS workingdays
FROM
EMP_Table;