Получить записи из базы данных за 5 минут от текущего времени

У меня есть столбец с отметкой времени в базе данных mySQL и таблица с именем alerttime, в которой есть записи в текущем формате 2018-09-06 15:59:00.

Я хочу запустить запрос, который просто показывает записи, которые находятся за 5 минут от текущего времени и даты (в расширенном режиме). например, если сейчас время 15:55 - будет показана запись со временем (2018-09-06 15:59:00)

Кто-нибудь знает, как этого добиться?

SELECT *
  FROM (`todolist`)
  WHERE `type` = '2' AND
        user_id = '1' AND
        DATEADD(minute, -5, GETDATE())

Я пробовал описанное выше, но думаю, что это неправильный способ, я просто нашел его где-то на форуме

какой тип дб?

JavaSheriff 06.09.2018 17:03

sql - это тип базы данных

ScottyBoy 06.09.2018 17:05
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
314
2

Ответы 2

SELECT * FROM (`todolist`) WHERE `type` = '2' AND user_id = '1' AND alerttime >= date_add(now(), interval 5 minute)

Я пробовал это и, кажется, просто получаю 0 результатов и не уверен, почему

ScottyBoy 06.09.2018 17:23

Ваш тип и user_id - INT или VARCHAR? Если они имеют тип int, удалите «У вас есть данные в вашей таблице в будущем для type = 2 и user_id = 1?». Просто попробуйте: SELECT * FROM (todolist) WHERE alerttime> = date_add (now (), interval 5 минут)

DanB 06.09.2018 17:25

Пользователь уже удалил user_id и type из запроса, но по-прежнему возвращает 0 результатов. Структура столбца настроена на дату и время (проверенная временная метка), такая же проблема. Не уверен, почему это могло происходить!

ScottyBoy 06.09.2018 17:30

Потому что в будущем нет записи! Отметка времени создается с текущей отметкой времени. Что вам может понадобиться через 5 минут после создания оповещения? Не за 5 минут до этого?

DanB 06.09.2018 17:31

Да, в основном в столбце у меня есть время оповещения, которое, скажем, можно установить через 10 минут прямо сейчас. когда до записи остается 10 минут, сценарий затем отправляет пользователю электронное письмо, сообщая, что у него есть предупреждение через 10 минут. По сути, мне нужно отображать все записи, которые появятся через 10 минут в будущем.

ScottyBoy 06.09.2018 17:46

Если запрос вернул 0 результатов, это потому, что у вас неправильные данные в вашей таблице.

DanB 06.09.2018 19:33

Я думаю, вам не хватает сравнения, вы добавляете -5 минут, но после этого вы не сравниваете это значение, вам может потребоваться сравнить это с чем-то вроде этого.

DATEADD(minute, -5, GETDATE()) < GETDATE()

вы также можете проверить ссылки для Microsoft:

https://docs.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-2017

Надеюсь, это поможет, вам просто нужно с чем-то сравнить результат добавления -5 минут.

Другие вопросы по теме