我正在編寫客戶端服務器應用程序,當客戶端向服務器發送命令時,SQL數據庫中的記錄更新並且更新時間戳在字段上設置。但是現在我想讀取SQL數據庫中所有在最後一小時使用時間戳在線的用戶。更新時使用Java讀取的SQL時間戳
所以這是我在多大程度上是:
SELECT username FROM users WHERE lastonline...
LASTONLINE是與用戶最後一次更新的時間戳字段。我現在不知道如何檢查他是否在最後一個小時在線。
我感謝你的幫助。
我正在編寫客戶端服務器應用程序,當客戶端向服務器發送命令時,SQL數據庫中的記錄更新並且更新時間戳在字段上設置。但是現在我想讀取SQL數據庫中所有在最後一小時使用時間戳在線的用戶。更新時使用Java讀取的SQL時間戳
所以這是我在多大程度上是:
SELECT username FROM users WHERE lastonline...
LASTONLINE是與用戶最後一次更新的時間戳字段。我現在不知道如何檢查他是否在最後一個小時在線。
我感謝你的幫助。
選擇用戶名的區別在哪裏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)+"'
「
比較當前小時和時間戳記錄上的小時。
如果您正在使用SQL Server:
SELECT DATEPART(hh, GETDATE())
--current小時
SELECT DATEOART(hh, ColumnStoredInDB)
--stored小時
劇透:只需從當前小時取ColumnStoredInDB,如果不同的是< 1用戶在系統中最近一小時一直在用戶。如果> = 1,你可以跳過記錄從用戶
是' DATEPART'函數的泛型SQL函數還是RDBMS特有的? –
您沒有用RDBMS標記您的問題,我假定SQL Server,如果不是Oracle和其他供應商有類似的東西,那麼請根據您正在使用的內容查閱文檔。 .. – JonH
對不起,網提我使用MySQL – alexj