2015-12-11 3 views
3

Я изо всех сил, чтобы понять, почему мой запрос не возвращает никаких результатов, пожалуйста, не могли бы вы посмотрите и дайте мне знать, что я делаю неправильно:MySQL Query не возвращает никаких результатов

SELECT * FROM sys_online_users WHERE last_active BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL 10 SECOND) 

Что Я пытаюсь добиться, чтобы показать, какие пользователи были активны в течение последних 10 секунд или любого другого временного интервала. Однако, когда я запускаю запрос, я не получаю никаких результатов, несмотря на то, что знаю, что у меня есть обновления в таблице между указанным диапазоном времени.

ответ

1

Йиу идут неправильно с between- первые десять секунд назад, и после этого теперь:

SELECT * FROM sys_online_users WHERE 
last_active BETWEEN DATE_SUB(NOW(), 
INTERVAL 10 SECOND) 
AND NOW() 
+0

Теперь я заметил, что по какой-то причине PHP, который выписывает активное время на мою БД, отстает на час, это также, вероятно, поэтому я не мог получить и сопоставить раньше, но теперь, чтобы добавить к вопросу, как сделать Я это исправим? –

0

Попробуйте это:

SELECT * FROM sys_online_users WHERE last_active BETWEEN DATE_SUB(NOW(), INTERVAL 10 SECOND) AND NOW() 
0

только ошибка размещения колонок, попробуйте следующее:

SELECT * FROM sys_online_users WHERE last_active BETWEEN DATE_SUB(NOW(), INTERVAL 10 SECOND) AND NOW() 
0

Я пробовал под запрос, что он работает идеально. В вашем запросе, пожалуйста, возьмите больше зазора со вторым, тогда f ire вы получите желаемый результат

SELECT * FROM sys_online_users WHERE last_active МЕЖДУ DATE_SUB (СЕЙЧАС(), INTERVAL 50 SECOND) AND NOW();

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