Список дат в MySQL
- Опубликовано: 11:37:55 11.07.2009
- Метки: MySql, Программирование
Понадобилось мне получить список дат оказания услуг на определенный период, причем в базе есть только записи в какой день надели она оказывается. Искал как можно с генерировать не существующие строки в MySQL. Остановился на способе использования донорной таблицы размером не менее нужных дней. У меня это оказалось таблица с городами.
Вот собственно сам запрос.
SET @rownum:=-1;
SET @d_begin:='2009-04-10'; /* Начало периода*/
SET @d_end:='2009-12-20'; /* Конец периода*/
SELECT d,WEEKDAY(d) AS day
FROM (
SELECT adddate(@d_begin,interval @rownum:=@rownum+1 DAY) d FROM CITY /*Генерируем временную таблицу*/
) t
WHERE t.d<=@d_end
AND WEEKDAY(d) IN (
SELECT ws.id_week FROM WEEK_SERVICE ws WHERE ws.id_service=214 /* Фильтруем по нужным дням недели*/
)
Может кому то пригодится. Если есть вариант лучше или предложения пишите в комментариях:)
Читать далее...