2017-02-18 109 views
0

我目前正在編寫一段代碼,它將查看數據庫並查看是否有任何管理員當前處於聯機狀態並在頁面上顯示他們爲在線狀態。Mysql從日期值減去5分鐘

每次用戶瀏覽我網站上的一個頁面(當他們登錄時),它抓取當前時間並更新名爲lastseen的列。

我有一個角色列,標記來自管理員的用戶,我希望它做的是查詢所有管理員的數據庫,並檢查lastseen列,如果該時間是在當前時間的5分鐘內,然後輸出他們到一排,然後我可以採取和格式後。

這是我目前的嘗試,但沒有回來。

SELECT username, role, lastseen FROM database.accounts WHERE lastseen >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND role='admin'

我存儲lastseen如日期( 'Y-M-d H-I-S')從PHP所以它看起來像這樣 2017-02-18 16:07:42在數據庫中。

+0

當然 'INSERT INTO'accounts' ('id','username','password','role','email','regip','experience','level','rank','lastip','deleted','banned', ('0','Testuser','$ 6 $ rounds = 10000 $ wmknwubJ0IfllHl5 $ Vd25WbsNkxWzgz154i3tE8Z8uu('0','Testuser','hp') JQuSHdCGIfIgDfvRTfOobpcPJ0G5kaW2OYgd29AtBGm9GLksyaQOklUIr92','user','[email protected]','72 .0.129.61','250','0','0','72 .0.129.61','0','0','2017 -02-15 06:35:37','2017-02-16 07:26:46','1','2017-02-16 02:27:13','','1','2 ')' 可能已經丟失太多XD –

+0

請確保PHP和MySQL的時區相同。只是爲了確保,嘗試將管理員帳戶的lastseen設置爲2018年。 – zed

+0

實際上,現在檢查MYSQL和PHP時區 –

回答

0

什麼是你lastseen數據類型,您的查詢似乎是正確的,只是

SELECT username, role, lastseen FROM database.accounts 
WHERE STR_TO_DATE(lastseen, '%Y-%m-%d %H:%i:%s') >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND role='admin' 

也儘量確保你的PHP和MySQL服務器具有相同的時區

+0

lastseen的數據類型是datetime。我試着用這個查詢,但它仍然沒有返回任何結果。 –

+0

檢查你的php和mysql的時區是否同步 – sumit