UnixTimestamp用户上次见过

时间:2013-01-29 15:43:22

标签: php timestamp

我正在尝试创建一个查询来抓取在过去20分钟内看到的用户,但它没有获取正确的结果。行" last_seen"包含用户上次加载页面的时间戳。

  

mysql_query(" SELECT用户,排名,ipaddress FROM " . SQL_PREFIX . "site_session WHERE last_seen>" .strtotime(" -30分钟")。"排序依据   用户desc");

4 个答案:

答案 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,并使用PDOMySQLi - 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");