我正在尝试创建一个查询来抓取在过去20分钟内看到的用户,但它没有获取正确的结果。行" last_seen"包含用户上次加载页面的时间戳。
mysql_query(" SELECT用户,排名,ipaddress FROM
" . SQL_PREFIX . "site_session
WHERE last_seen>" .strtotime(" -30分钟")。"排序依据 用户desc");
答案 0 :(得分:1)
试试这个:
SELECT user,rank,ipaddress
FROM " . SQL_PREFIX . "site_session
WHERE last_seen > INTERVAL CURRENT_TIMESTAMP - 20 MINUTE
order by user desc
答案 1 :(得分:1)
如果您只是使用Unix时间戳,为什么不使用数学?
SELECT ... WHERE last_seen > UNIX_TIMESTAMP() - (60*20)
如果您的列是datetime
,那么您可以:
SELECT ... WHERE last_seen > DATE_SUB(NOW(), INTERVAL 20 MINUTE)
您还需要在新代码中停止使用mysql_
函数。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。
答案 2 :(得分:1)
试试这个
mysql_query ("SELECT user,rank,ipaddress FROM " . SQL_PREFIX . "site_session WHERE last_seen > ".time()-1200." order by user desc");
time()是一个php函数,而不是mysql
答案 3 :(得分:1)
尝试:
mysql_query ("SELECT user,rank,ipaddress FROM " . SQL_PREFIX . "site_session WHERE last_seen > (NOW() - INTERVAL 20 MINUTE) order by user desc");