Выбрать данные с начала месяца по текущий день

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
Мне нужно выбрать данные с первого числа текущего месяца по текущий день.
Например, с 1 июля и по 30 июля ( сегодня 30-е).

Рабочая функция для выбора данных, например, за последние 24 часа у меня выглядит так:

Код:
SELECT count(DISTINCT id_vis) FROM visit_tbl
                                  LEFT JOIN users_tbl ON id=id_vis
                                  WHERE id_vis!='".intval($userid)."' AND id_user='".intval($userid)."' AND (visit_date + INTERVAL 1 DAY)>NOW()

Помогите переделать этот запрос для выбора данных с начала месяца по текущий день.
 
Код:
visit_date > DATE(NOW()) - INTERVAL DAY(NOW()) - 1 day
От сегодня отнимаем порядковый номер дня - 1 день (чтобы остатся в пределах месяца)
поскольку время не указано, то по умолчанию 00:00:00
Ну и чисто для тестов:
Код:
SELECT DATE(NOW()) - INTERVAL DAY(NOW()) - 1 day
 
На гугл-ответах предложили ещё интересный вариант, буду его использовать
Код:
extract(year_month from visit_date)=extract(year_month from current_date)

И ещё вопрос, как переделать этот запрос для выбора данных с начала дня по текущее время?
 
И ещё вопрос, как переделать этот запрос для выбора данных с начала дня по текущее время?


Код:
extract(year_month from visit_date)=extract(year_month from current_date)
AND  extract(DAY from visit_date)= extract(DAY from current_date)
* тут не совсем верно, т.к. учитывается только текущий день.. не по текущее время. Если визитов "из будущего" не намечается - вполне приемлемо. Если же принципиально -можно добавить ещё один AND сравнение с текущим моментом времени (UNIX_TIMESTAMP())
 
Назад
Сверху