0

2013-04-01 と 2014-03-07 の出力がこのようになるはずの 2 つの日付の間の月のリストを取得したい

month  
April
may
june
.
.
.
March
4

1 に答える 1

1

私の提案は簡単です:

プロシージャ/関数を作成する

DELIMITER $$

USE `urlopy`$$

DROP PROCEDURE IF EXISTS `dowhile`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `dowhile`(dt_start DATE,dt_stop DATE)
BEGIN
  DECLARE v1 INT DEFAULT 0;

CREATE TEMPORARY TABLE tmp (
  `month_name` VARCHAR(256) DEFAULT NULL,
  `date_change` DATE DEFAULT NULL
) ENGINE=MYISAM DEFAULT CHARSET=utf8  ;  


  SELECT TIMESTAMPDIFF(MONTH, dt_start, dt_stop)+1  INTO v1;
  WHILE v1 > -1 DO
    INSERT tmp (SELECT MONTHNAME( ADDDATE(dt_start, INTERVAL v1 MONTH) ),ADDDATE(dt_start, INTERVAL v1 MONTH) );
    SET v1 = v1 - 1;
  END WHILE;

SELECT * FROM tmp;  
DROP TEMPORARY TABLE IF EXISTS tmp;  

    END$$

DELIMITER ;

それからそれを呼び出します

CALL dowhile('2012-05-05', '2013-06-04');
于 2013-09-11T09:16:06.473 に答える