Как рассчитать количество дней между двумя датами в Mysql, исключая выходные (суббота и воскресенье)? [Дубликат]

0

Как вернуть число дней между двумя датами минус количество суббот и воскресенье в этот период? Функция DATEDIFF на mysql дает мне количество дней, но не исключает выходные.

Например, у меня есть два столбца и вы хотите добавить третий, который отличается от двух.

Буду признателен за любую помощь.

Теги:

2 ответа

1

Попробуйте использовать это

Объявить @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

0
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')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню