Как вернуть число дней между двумя датами минус количество суббот и воскресенье в этот период? Функция DATEDIFF на mysql дает мне количество дней, но не исключает выходные.
Например, у меня есть два столбца и вы хотите добавить третий, который отличается от двух.
Буду признателен за любую помощь.
Попробуйте использовать это
Объявить @Date1 Datetime, @Date2 Datetime;
Выберите @Date1 = '8/1/2018', @Date2 = '8/7/2018'
Выберите Datediff (dd, @Date1, @Date2) - (Datediff (wk, @Date1, @Date2) * 2) - Случай, когда Datepart (dw, @Date1) = 1 Затем 1 Другое 0 Конец + Случай, когда Datepart (dw, @Date2) = 1 Then 1 Else 0 End
DROP FUNCTION IF EXISTS GetNumberOfDays;
CREATE FUNCTION GetNumberOfDays(P_Date1 varchar(20), P_Date2 varchar(20))
RETURNS int(100)
BEGIN
DECLARE x INT;
DECLARE V_Date1 date;
DECLARE V_Date2 date;
SET V_Date1 := STR_TO_DATE(P_Date1, '%d/%m/%Y');
SET V_Date2 := STR_TO_DATE(P_Date2, '%d/%m/%Y');
SET x := 0;
WHILE V_Date1 <= V_Date2
DO
IF (DAYOFWEEK(V_Date1) != 7 AND DAYOFWEEK(V_Date1) != 1)
THEN
BEGIN
SET x = x + 1;
END;
END IF;
SET V_Date1 := DATE_ADD(V_Date1, INTERVAL 1 DAY);
END WHILE;
RETURN x;
END;
SELECT GetNumberOfDays('01/08/2018', '11/08/2018')