Выборка месяца

Spectrum

Guest
Выборка месяца

Подскажите пожалуйста как выбрать данные за весь месяц имея дату 2005-09-28 из колонки в формате date (так что бы не находить начальное и конечное значение месяца)
Спасибо.
 

Steamroller

Новичок
Spectrum,
главная ошибка, которую надо избежать, это использование условия типа WHERE MONTH(date) = MONTH($current_date).
По идее - формируешь 1-е число нужного месяца с помощью выражений mysql, и 1-е число следующего за ним, и between между ними.
 

SelenIT

IT-лунатик :)
Steamroller, нельзя ли поподробнее, почему это главная ошибка?
 

Steamroller

Новичок
SelenIT, потому что когда пишешь WHERE MONTH(date) - MySQL сканирует все вообще записи таблицы, то есть не использует индекс по дате. (Как вариант, сканирует индекс по дате, но тоже целиком, что не намного лучше).
 

basboy

Новичок
SelenIT
А вообще если выборка нужна за определённый месяц в году, то при выборке по условию WHERE MONTH(date) = MONTH($current_date) не учитывается год. Поэтому будут выводиться данные не за конкретный промежуток времени, а за фиксированный месяц в каждом году.
 
Сверху