MySQL显示范围之间的所有日期

xjs*_*iya 3 mysql date range

我想显示MySQL的日期fromto日期之间的所有日期.

例如,来自schedule具有fromto字段的表的数据是:

from日期是2013-3-13,和

to日期是2013-3-20,

我想要的结果是:

 2013-3-13
 2013-3-14
 2013-3-15
 2013-3-16
 2013-3-17
 2013-3-18
 2013-3-19
 2013-3-20
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用MySQL查询实现这一点(不必使用存储过程'因为我不熟悉它)?

编辑:

这里的答案非常有用,但我仍然没有完全得到所需的.在此示例中,它仅成功运行但不输出任何内容.我不知道这似乎是什么问题.

请帮忙.谢谢!

Tar*_*ryn 8

您可以使用以下内容生成日期列表:

select a.Date,  s.*
from 
(
  select curdate() + INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
  from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
  cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
  cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
) a
inner join schedule s
  on a.Date >= s.fromDate 
  and a.Date <= s.toDate
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo