Для динамического получения даты в диапазоне дат с помощью SQL вы можете сделать это (пример в MySQL):
Создать таблицу для хранения номера 0 через 9.
CREATE TABLE ints (i tinyint(4));
insert into ints (i)
values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
Выполнить запрос следующим образом:
select ((curdate() - interval 2 year) + interval (t.i * 100 + u.i * 10 + v.i) day) AS Date
from
ints t
join ints u
join ints v
having Date between '2015-01-01' and '2015-05-01'
order by t.i, u.i, v.i
Это произведет все даты между 1 января 2015 года и 1 мая 2015 года.
Output
2015-01-01
2015-01-02
2015-01-03
2015-01-04
2015-01-05
2015-01-06
...
2015-05-01
Запрос объединяет таблицу ints 3 раза и получает добавочное число (от 0 до 999). Затем он добавляет это число как дневной интервал, начиная с определенной даты, в этом случае дата 2 года назад. Любой диапазон дат от 2 лет назад и 1000 дней вперед можно получить с помощью приведенного выше примера. Чтобы создать запрос, который генерирует даты более 1000 дней, просто присоединитесь к таблице ints, чтобы разрешить до 10 000 дней диапазона и т. Д.
Добро пожаловать в SO ivar. Я думаю, вам нужно добавить более подробную информацию о том, что вы запрашиваете и как? –
Нам потребуется более подробная информация ... на каком языке вы используете? Какая система это? – Mala
Какова ваша колонка даты? Это ДАТА или VARCHAR? –