Как выбрать диапазон дат текущего месяца в таблице MySQL? - PullRequest
1 голос
/ 01 июля 2011

Я хочу выбрать строки текущего месяца в таблице

Я пробовал это

SELECT * FROM table WHERE YEAR(date) = YEAR(CURDATE()) AND MONTH(date) = MONTH(CURDATE())

Но это не работает.

Ответы [ 2 ]

3 голосов
/ 01 июля 2011

Я не эксперт по движку MySQL, но я полагаю, что вам было бы лучше вообще сравнивать столбцы с реальными значениями даты, а не использовать имеющиеся у вас функции даты. Как только вы оберните столбец (столбцы) в функцию даты, индексы столбцов будут бесполезны.

У меня на этом компьютере нет движка MySQL для тестирования, но вот псевдокод:

SELECT
    <column list>
FROM
    My_Table
WHERE
    my_date >= <get 1st of current month>(CURDATE()) AND
    my_date <  <get 1st if next month>(CURDATE())
0 голосов
/ 27 марта 2015

вот самый простой метод, который я пробовал и работает хорошо, вы хотите выбрать строки, где date_field в этом месяце.

SELECT * FROM your_table WHERE date_field > (NOW() - INTERVAL 1 MONTH);

выше будет возвращать все записи, что поле date_field этомесяц в mysql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...