在mysql

时间:2018-06-03 05:41:33

标签: mysql stored-procedures

问题是,虽然循环根据我的期望不起作用。我期待这个结果...... 2018-05-01 2018年5月2日 2018年5月3日 2018年5月6日 2018年5月7日 2018年5月8日 2018年5月9日 2018年5月10日 2018年5月13日 2018年5月14日 2018年5月15日 2018年5月16日 2018年5月17日 2018年5月20日 2018年5月21日 2018年5月22日 2018年5月23日 2018年5月24日 2018年5月27日 2018年5月28日 2018年5月29日 二零一八年五月三十日 2018年5月31日

  BEGIN
  declare varDay date;
  DECLARE v_finished INT DEFAULT 0;
  DECLARE weekday VARCHAR(20);
  DECLARE weekend_cursor CURSOR FOR SELECT weekendDay FROM weekend;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET  v_finished=1;

  DROP TEMPORARY TABLE IF EXISTS daterange;
     CREATE TEMPORARY TABLE daterange(
     id INT NOT NULL AUTO_INCREMENT,
      day DATE,
     PRIMARY KEY(id)
      ); 



    WHILE(sdate <= enddate) DO
     OPEN weekend_cursor;
     get_weekend:LOOP
       FETCH weekend_cursor INTO weekday;
        IF v_finished =1 THEN 
         CLOSE weekend_cursor;  
          LEAVE get_weekend;

          ELSEIF DAYNAME(sdate)!=weekday THEN
           INSERT INTO daterange (day) values (sdate);
          END IF;
        END LOOP  get_weekend;


    SET sdate = DATE_ADD(sdate, INTERVAL 1 DAY);
    SET varDay = sdate;
   END WHILE;

   SELECT * FROM daterange;
   END

0 个答案:

没有答案