2013-04-01 と 2014-03-07 の出力がこのようになるはずの 2 つの日付の間の月のリストを取得したい
month
April
may
june
.
.
.
March
2013-04-01 と 2014-03-07 の出力がこのようになるはずの 2 つの日付の間の月のリストを取得したい
month
April
may
june
.
.
.
March
私の提案は簡単です:
プロシージャ/関数を作成する
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');