2017-01-29 1 views
-1

Я работаю над скриптом, чтобы выбрать вехи из БД, которые находятся всего в течение 5 минут (или любой другой заданной временной суммы) запроса. У меня проблемы.PHP/mySQL выбрать время запроса запроса и лимит запроса только в течение 5 минут

  1. Даты хранятся в базе данных в этом формате:

    пример: 2016-12-05 21:19:00

  2. , когда я запускаю этот запрос:

    ВЫБРАТЬ * FROM вехи WHERE status = «запланировано» и время> = NOW()

Я могу получить сообщение lts для всего в будущем, но как я могу ограничить запрос, скажем, только 5 минут, например.

+3

между сейчас() и сейчас() + промежуток 5 минут – Strawberry

+0

so time> = NOW() +300? –

+1

Использование 'INTERVAL 5 MINUTE' намного более самоочевидно, чем 300, особенно когда вы говорите дни и недели. – tadman

ответ

3

Вы можете использовать BETWEEN и DATE_ADD функции MySQL, чтобы достичь желаемого результата, например .:

SELECT * 
FROM milestones 
WHERE status="planned" and time BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 5 MINUTE) 

Это будет печатать все записи, имеющие дату между текущей датой и последующие 5 минут.

Если вы хотите напечатать то же самое за последние 5 минут, вы можете использовать следующее:

SELECT * 
FROM milestones 
WHERE status="planned" and time BETWEEN DATE_SUB(NOW(), INTERVAL 5 MINUTE) AND NOW() 

Вот документация MySQL для DATE_ADD и BETWEEN.

+0

@Strawberry Я изменил ответ и использовал 'date_sub', если это то, что вы имели в виду :) –

+0

Извините, я не знаю, что вы подразумеваете под этим запросом. –

Смежные вопросы