【求助】MYSQL如何查询两个时间之间的日期列表

m_liuqian 2012-02-23 11:14:23
要用MYSQL查询 2011-12-01 至 2011-12-05 之间的日期列表

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

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

谢谢各位大虾帮帮忙
...全文
983 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
m_liuqian 2012-02-25
  • 打赏
  • 举报
回复
这个执行起来好慢,有效率高一点的写法吗
[Quote=引用 6 楼 wwwwa 的回复:]
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('开……
[/Quote]
WWWWA 2012-02-24
  • 打赏
  • 举报
回复
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('开始日期','结束日期')
m_liuqian 2012-02-24
  • 打赏
  • 举报
回复
请问方法二创建日期表可以用存储过程来创建吗,是的话该如何写?

[Quote=引用 1 楼 acmain_chm 的回复:]
方法一,使用存储过程,递增输出日期,(如果这样,还不如直接在你的程序中实现比较高效)
方法二,创建一个日期表,日期为主键,在其中存放自1900-01-01 到 2999-12-31的的所有日期,然后可以直接 select * from 日期表 where 日期 between 2011-12-01 至 2011-12-05
[/Quote]
Rotel-刘志东 2012-02-24
  • 打赏
  • 举报
回复
between ... and 这段时间。
WWWWA 2012-02-24
  • 打赏
  • 举报
回复
生成12月的所有日期,再与工作表连接
ACMAIN_CHM 2012-02-24
  • 打赏
  • 举报
回复
方法一,使用存储过程,递增输出日期,(如果这样,还不如直接在你的程序中实现比较高效)
方法二,创建一个日期表,日期为主键,在其中存放自1900-01-01 到 2999-12-31的的所有日期,然后可以直接 select * from 日期表 where 日期 between 2011-12-01 至 2011-12-05

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧