2012-12-12 69 views
0

我正在編寫客戶端服務器應用程序,當客戶端向服務器發送命令時,SQL數據庫中的記錄更新並且更新時間戳在字段上設置。但是現在我想讀取SQL數據庫中所有在最後一小時使用時間戳在線的用戶。更新時使用Java讀取的SQL時間戳

所以這是我在多大程度上是:

SELECT username FROM users WHERE lastonline... 

LASTONLINE是與用戶最後一次更新的時間戳字段。我現在不知道如何檢查他是否在最後一個小時在線。

我感謝你的幫助。

回答

1

選擇用戶名的區別在哪裏lastoinline> 「現在日 - 1小時」 和lastoinline < = 「現在日期」

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)+"' 

0

比較當前小時和時間戳記錄上的小時。

如果您正在使用SQL Server:

SELECT DATEPART(hh, GETDATE()) --current小時

SELECT DATEOART(hh, ColumnStoredInDB) --stored小時

劇透:只需從當前小時取ColumnStoredInDB,如果不同的是< 1用戶在系統中最近一小時一直在用戶。如果> = 1,你可以跳過記錄從用戶

+0

是' DATEPART'函數的泛型SQL函數還是RDBMS特有的? –

+0

您沒有用RDBMS標記您的問題,我假定SQL Server,如果不是Oracle和其他供應商有類似的東西,那麼請根據您正在使用的內容查閱文檔。 .. – JonH

+0

對不起,網提我使用MySQL – alexj