我目前正在编写一段代码,它将查看数据库并查看是否有任何管理员当前在线并在页面一侧显示为在线。
每次用户浏览我网站上的页面时(当他们登录时),它都会抓取当前时间并更新名为lastseen的列。
我有一个角色列,用于标记来自管理员的用户,我想要它做的是查询所有管理员的数据库并检查lastseen列,如果该时间在当前时间的5分钟内,则输出它们然后我可以采取行格式化。
这是我目前的尝试但没有回来。
SELECT username, role, lastseen FROM database.accounts WHERE lastseen >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND role='admin'
我将来自PHP的lastseen存储为日期('Y-m-d H-i-s')所以它看起来像这样
数据库中2017-02-18 16:07:42
。
答案 0 :(得分:1)
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服务器具有相同的时区