Выборка записей за последние 24 часа в SQL: WHERE-условие

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для выборки данных за последние 24 часа в MySQL используйте функцию NOW() с вычитанием интервала:

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_датавремени > NOW() – INTERVAL 1 DAY;

В SQL Server подойдет сочетание GETDATE() и DATEADD:

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_датавремени > DATEADD(DAY, -1, GETDATE());

Не забывайте заменять шаблонные названия таблиц и полей с датами и временем на свои собственные.

Кинга Идем в IT: пошаговый план для смены профессии

Расшифровка для различных баз данных

Разные СУБД используют собственный синтаксис для работы с запросами в 24-часовом периоде:

В PostgreSQL и Redshift для этого также применяются интервалы:

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_временных_меток > NOW() – INTERVAL '1 day';

SELECT * FROM ваша_таблица
WHERE ваш_столбец_временных_меток > GETDATE() – INTERVAL '1 day';

Oracle и SQLite предпочитают свой подход:

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_временных_меток > SYSDATE – 1;

SELECT * FROM ваша_таблица
WHERE ваш_столбец_временных_меток > datetime('now', '-1 day');

Для MS Access достаточно просто вычесть единицу:

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_временных_меток > Now() – 1;

Настройка временных запросов

Для оптимизации временных запросов рекомендуется следовать этим принципам:

  • Замените SELECT * на SELECT конкретные_поля, чтобы ускорить работу.
  • Повысьте скорость отбора данных, используя индексы для столбца с датами и временем.
  • Внимательно следите за соответствием настроек часового пояса текущим, чтобы избежать путаницы.
  • В SQL Server применяйте GETUTCDATE() для работы с временем в формате UTC.

Работа с различными временными промежутками

Применяйте INTERVAL или его аналоги для работы с различными временными отрезками:

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_датавремени > NOW() – INTERVAL 3 DAY;

SELECT * FROM ваша_таблица
WHERE ваш_столбец_датавремени > DATEADD(HOUR, -4, GETDATE());

Визуализация

Представьте, что вы извлекаете суточные отчеты из базы данных, как если бы возвращались на 24 часа назад, используя видеонаблюдение:

Markdown
Скопировать код
🕒 Временной снимок: Последние 24 часа 📸
SQL
Скопировать код
SELECT *
FROM ваша_таблица
WHERE ваш_столбец_временных_меток > NOW() – INTERVAL '1 day'
Markdown
Скопировать код
Это похоже на перемотку назад на сутки и просмотр фильма о всех прежних событиях.

Погружаемся глубже: продвинутые советы

Учет перехода на летнее время

Переход на летнее время создает сложности? Используйте функции, учитывающие смену времени, чтобы все сходилось.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Точные отметки времени

Для высокой точности в SQL Server начиная с версии 2008 используйте SYSDATETIME(). Данные будут актуальными до секунды.

SQL
Скопировать код
SELECT * FROM ваша_таблица
WHERE ваш_столбец_временных_меток > DATEADD(SECOND, -86400, SYSDATETIME());

Важность регистра букв

Вводите название столбца неправильно? Во многих базах данных регистр букв имеет значение, поэтому будьте внимательны.

Стратегия индексации

Индексы значительно улучшают скорость запросов. Не забывайте индексировать важные поля с временными данными.

Полезные материалы

  1. Функции даты и времени в MySQL — руководство по функциям даты и времени MySQL.
  2. Функция DATEADD() в Microsoft SQL Server — подробности о функции DATEADD в SQL Server.
  3. Функции даты и времени TIMESTAMP в Oracle — справочник по функциям времени в Oracle.
  4. Запросы дат и времени в SQLite — руководство по работе с датами и временем в SQLite.
  5. Стандартные функции даты и времени в ANSI SQL — обзор функций даты и времени в различных диалектах SQL.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой SQL-запрос следует использовать для выборки данных за последние 24 часа в MySQL?
1 / 5