0

クライアントがサーバーにコマンドを送信すると、クライアントサーバーアプリケーションを作成しています。SQLデータベースのレコードが更新され、更新時にフィールドにタイムスタンプが設定されます。しかし、ここで、タイムスタンプを使用して過去1時間にオンラインになっているSQLデータベースのすべてのユーザーを読みたいと思います。

だからこれは私がどれだけ離れているかです:

SELECT username FROM users WHERE lastonline...

lastonlineは、ユーザーが最後に更新したタイムスタンプのフィールドです。私は今、彼が過去1時間にオンラインであったかどうかを確認する方法がわかりません。

助けてくれてありがとう。

4

2 に答える 2

1

ユーザー名FROMuserWHERE lastoinline> "date now-1 hour" AND lastoinline <="datenow"を選択します

Date dеNow = new Date();
Date веBefore = tdNow; tdBefore.setHours(tdBefore.getHours()-1);
String query = "SELECT username FROM user WHERE lastonline>='"+(dtBefore.getTime/1000)+"' AND lastonline<='"+(dtNow.getTime/1000)+"'

「」

于 2012-12-12T08:14:46.017 に答える
0

現在の時間をタイムスタンプのレコードの時間と比較します。

SQLサーバーを使用している場合:

SELECT DATEPART(hh, GETDATE())-現在の時間

SELECT DATEOART(hh, ColumnStoredInDB)-保存時間

ネタバレ:現在の時間からColumnStoredInDBを取得し、差が1未満の場合、そのユーザーは過去1時間システムにアクセスしています。差が>=1の場合、そのレコードをスキップできます

于 2012-12-12T08:08:53.800 に答える