Выборка за месяц силами mysql c учетом 29, 30 и 31 дня в месяце

Рейтинг: 1Ответов: 1Опубликовано: 31.07.2023

Возможно, ли сделать выборку за месяц, используя только mysql или нужно подключить php? Условие: Берется число месяца. Если число с 1-го по 28-е, то просто до такого же числа следующего месяца (т.к. все эти числа есть в следующем месяце).

Если берется 29-е число, а в следующем нет 29-го числа (только 28 дней), то до 28-го включительно.

Если берется 30-е число, а в следующем нет 30-го числа (только 29 или 28 дней), то до 29-го или 28-го.

Для 31-го аналогично, если нет ни 31, ни 30, ни 29 в следующем месяце, то до 30 или 29 или 28 включительно (смотря сколько будет). Это в какой-то степени расчетный период, который используют операторы сотовой связи.

Ответы

▲ 3Принят

На практике хватает запроса:

SELECT * FROM table WHERE date_created BETWEEN (CURRENT_DATE() - INTERVAL 1 MONTH) AND CURRENT_DATE();

Конечно, разные длины месяцев будут при этом учтены. А вообще, поиск рулит. Может что-то вам будет полезно и в этой теме.