日期:2014-05-16  浏览次数:20804 次

【求助】MYSQL如何查询两个时间之间的日期列表
要用MYSQL查询 2011-12-01 至 2011-12-05 之间的日期列表

怎么用查询语句返回以下列表 

2011-12-01
2011-12-02
2011-12-03
2011-12-04
2011-12-05

谢谢各位大虾帮帮忙

------解决方案--------------------
方法一,使用存储过程,递增输出日期,(如果这样,还不如直接在你的程序中实现比较高效)
方法二,创建一个日期表,日期为主键,在其中存放自1900-01-01 到 2999-12-31的的所有日期,然后可以直接 select * from 日期表 where 日期 between 2011-12-01 至 2011-12-05
------解决方案--------------------
DELIMITER $$
DROP PROCEDURE IF EXISTS zj$$
CREATE PROCEDURE zj(i DATE,j DATE)
BEGIN
WHILE i<=j DO
INSERT INTO lsb VALUES(i);
SET i=i+INTERVAL 1 DAY;
END WHILE;
END$$
DELIMITER ;

call zj('开始日期','结束日期')