UnixTimestamp用户最后一次出现


UnixTimestamp Users Last Seen

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

mysql_query ("从" . SQL_PREFIX . "site_session选择用户,排名,IP地址"last_seen>".strtotime("-30分钟")"。 用户描述");

试试这个:

SELECT user,rank,ipaddress 
FROM " . SQL_PREFIX . "site_session 
WHERE last_seen > INTERVAL CURRENT_TIMESTAMP - 20 MINUTE
order by user desc

尝试:

mysql_query ("SELECT user,rank,ipaddress FROM " . SQL_PREFIX . "site_session WHERE last_seen > (NOW() - INTERVAL 20 MINUTE) order by user desc");

如果你只是使用Unix时间戳,为什么不直接使用数学呢?

SELECT ... WHERE last_seen > UNIX_TIMESTAMP() - (60*20)

如果你的列是datetime,那么你:

SELECT ... WHERE last_seen > DATE_SUB(NOW(), INTERVAL 20 MINUTE)

您还需要停止在新代码中使用mysql_函数。它们不再维护并被正式弃用。看到红框了吗?请改为了解预准备语句,并使用 PDO 或 MySQLi - 本文将帮助您决定哪个语句。

试试这个

mysql_query ("SELECT user,rank,ipaddress FROM " . SQL_PREFIX . "site_session WHERE last_seen > ".time()-1200." order by user desc");

time() 是一个 PHP 函数,而不是 MySQL