Mysql вычесть 5 минут из значения даты

В настоящее время я пишу фрагмент кода, который просматривает базу данных и проверяет, есть ли какие-либо администраторы в данный момент в сети, и показывает их на боковой стороне страницы как онлайн.

Каждый раз, когда пользователь просматривает страницу на моем сайте (когда он вошел в систему), он получает текущее время и обновляет столбец с именем lastseen.

У меня есть столбец роли, который помечает пользователя от администратора, и я хочу, чтобы он выполнил запрос к базе данных для всех администраторов и проверил последний увиденный столбец. Если это время не превышает 5 минут текущего времени, выведите его в строку который я могу затем взять и отформатировать позже.

Это то, что я сейчас пробовал, но ничего не вернулось.

SELECT username, role, lastseen FROM database.accounts WHERE lastseen >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND role='admin'

Я храню lastseen как дату (‘Y-m-d H-i-s’) из PHP, так что это выглядит так
2017-02-18 16:07:42 в базе данных.

0

Решение

Для чего нужен ваш тип данных? lastseen, Ваш запрос кажется правильным, просто попробуйте с

SELECT username, role, lastseen FROM database.accounts
WHERE STR_TO_DATE(lastseen, '%Y-%m-%d %H:%i:%s') >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND role='admin'

Также убедитесь, что ваш PHP и MYSQL Server имеют одинаковые часовые пояса

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector