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查询来实现此目的(而不必使用存储过程,因为我对此并不熟悉)?

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

请帮忙。谢谢!

回答:

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

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

以上是 MySQL显示范围之间的所有日期 的全部内容, 来源链接: utcz.com/qa/430855.html

回到顶部