Имеется таблица с календарем событий, в данной таблице есть поле day - формат Y-m-d (тип поля date).
Как сделать выборку с условием, что даты в поле day будут идти последовательно непрерывно, к примеру выборка записей с 7-ю днями непрерывно начиная с сегодняшнего дня? Даты в календаре могут быть записаны на 2 года вперед. В таблице примерно 3 млн записей.
Если строкой храните дату или дату/время, то стреляете себе в ногу, и поэтому у вас возник такой вопрос.
с 7-ью днями непрерывно начиная с сегодняшнего дня?
1. Взять только столбец дат.
2. Округлить до дней или форматнуть дату до дней в любом виде.
3. Сделать distinct результата 2.
4. Взять период записей за 7 дней.
5. С помощью классического count или оконного count убеться что в дистинктованной выборке 7 записей.
6. Использовать 1-5 как подзапрос справочник, какие записи брать из основной выборки сравнив записи по дате как в шаге 2.
6.1. Возможно, понадобиться индексировать дату по дневной части, чтобы ускорить такой запрос.