Эффективные запросы MySQL: получение записей за сегодняшний день и за последние 30 дней

В этой статье блога мы рассмотрим различные методы получения записей из базы данных MySQL, которые попадают в диапазон между сегодняшним днем ​​и за последние 30 дней. Мы углубимся в практические примеры кода и объясним каждый метод, используя разговорный язык. В конце концов у вас будет несколько вариантов выбора при запросе к базе данных MySQL данных, основанных на времени.

Метод 1: использование оператора BETWEEN
Один простой подход — использовать оператор BETWEEN в сочетании с функциями CURDATE() и DATE_SUB(). Вот пример запроса:

SELECT *
FROM your_table
WHERE your_date_column BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE();

Этот запрос выбирает все записи из таблицы your_table, где столбец your_date_column находится между сегодняшним днем ​​и последними 30 днями. Функция CURDATE() возвращает текущую дату, а функция DATE_SUB() вычитает из нее 30 дней.

Метод 2: использование функций DATE
Другой метод предполагает использование функций DATE, таких как DATE() и INTERVAL. Вот пример запроса:

SELECT *
FROM your_table
WHERE DATE(your_date_column) >= DATE(NOW() - INTERVAL 30 DAY)
  AND DATE(your_date_column) <= CURDATE();

В этом запросе функция NOW() возвращает текущие дату и время, а INTERVAL 30 DAY вычитает из них 30 дней. Функция DATE() извлекает только часть даты, игнорируя компонент времени.

Метод 3: использование UNIX_TIMESTAMP
Если ваши даты хранятся в виде временных меток UNIX (целочисленные значения, представляющие секунды с 1970-01-01 00:00:00 UTC), вы можете использовать функцию UNIX_TIMESTAMP(). Вот пример запроса:

SELECT *
FROM your_table
WHERE your_timestamp_column >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 30 DAY)
  AND your_timestamp_column <= UNIX_TIMESTAMP(CURDATE());

Этот запрос выбирает записи, в которых столбец «your_timestamp_column» находится между сегодняшними временными метками UNIX и последними 30 днями.

Извлечение записей из базы данных MySQL за сегодняшний день и за последние 30 дней можно выполнить с помощью разных подходов. Используя оператор BETWEEN, функции DATE или временные метки UNIX, вы можете эффективно запрашивать в базе данных данные, основанные на времени. Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям и структуре базы данных.