小编典典

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

mysql

这个问题已经在这里有了答案

从日期范围生成天数
(29个答案)

7年前关闭。

我想显示a fromtoMySQL中的日期之间的所有日期。

例如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

如何仅使用MySQL查询来实现此目的(而不必使用存储过程,因为我对此并不熟悉)?

编辑:

尽管我仍然没有完全得到想要的结果,但是这里的答案很有帮助。在此示例中,它仅成功运行,但不输出任何内容。而且我不知道这是什么问题。

请帮忙。谢谢!


阅读 1031

收藏
2020-05-17

共1个答案

小编典典

您可以使用以下命令生成日期列表:

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

参见带有演示的SQL Fiddle

2020-05-17