有大侠能提供个计算两日期之间工作日(除去周六日,不考虑节假日)的mysql函数吗?小弟急用!谢谢了

解决方案 »

  1.   

    没有这个函数。 并且国内的法定假期并不固定,和周末重叠时会导致周末的变化。
    需要一个日历表,然后用 select 语句来实现。
      

  2.   

    用DATEDIFF再SET @dFrom = '2013-1-2', @dTo = '2013-3-1';
    SET @days = DATEDIFF(@dTo, @dFrom)+1;
    SELECT @days - FLOOR(@days/7)*2
      

  3.   

    DELIMITER $$
    DROP PROCEDURE IF EXISTS zj$$
    CREATE PROCEDURE insertNoday(i DATE,j DATE)
    BEGIN
    DECLARE num VARCHA(4);  
    WHILE i<=j DO
    SELECT WEEKDAY(i) INTO num ;
    IF num<5 THEN
    INSERT INTO sys_invalid_day(invalid_day) VALUES(i);
    END IF;
    SET i=i+INTERVAL 1 DAY;
    END WHILE;
    END$$
    DELIMITER ;CALL insertNoday('2015-01-01','2015-05-31')