1

過去20分間に表示されたユーザーを取得するためのクエリを作成しようとしていますが、正しい結果が取得されていません。行「last_seen」には、ユーザーが最後にページをロードしたタイムスタンプが含まれています。

mysql_query( "SELECT user、rank、ipaddress FROM " . SQL_PREFIX . "site_sessionWHERE last_seen>" .strtotime( "-30 minutes")。 "order by user desc");

4

4 に答える 4

1

これを試して:

SELECT user,rank,ipaddress 
FROM " . SQL_PREFIX . "site_session 
WHERE last_seen > INTERVAL CURRENT_TIMESTAMP - 20 MINUTE
order by user desc
于 2013-01-29T15:44:55.127 に答える
1

試す:

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

于 2013-01-29T15:53:55.663 に答える
1

Unix タイムスタンプを使用しているだけなら、なぜ数学を使用しないのでしょうか?

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

列が の場合は、次のようになりますdatetime

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

mysql_また、新しいコードでの関数の使用を停止する必要があります。それらはもはや保守されておらず、公式に廃止されています。赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください

于 2013-01-29T15:45:25.487 に答える
1

これを試して

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

time() は mysql ではなく php 関数です

于 2013-01-29T15:46:18.247 に答える