MySQL отображает всю дату между диапазонами

Я хочу показать все даты между датами from и to от MySQL.

Например, данные из таблицы schedule с полями from и to:

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-запрос (без использования хранимой процедуры, потому что я не знаком с ним)?

EDIT:

Ответ здесь очень полезен, хотя я до сих пор не полностью понял, что нужно. В этот пример он работает только успешно, но ничего не выводит. И я не знаю, какая проблема.

Пожалуйста, помогите. Спасибо!

Ответы

Ответ 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 with Demo

Ответ 2

попробуйте, где с даты 2013-3-13, а на сегодняшний день - 2013-3-20,

"SELECT * FROM schedule WHERE Field BETWEEN $fromdate AND $todate";