2013-01-20 111 views
-6

我有一個包含以下三列的mySQL表:IDENT,TIME和USER。所有類型都是varchar。例如:另一個SQL查詢

IDENT = someuser::24::myisp.net::us 
TIME = 2012-11-05 1:45:42 
USER = someuser 

我想要做的是計算過去5天內不同IDENT的數量。我嘗試以下,但它失敗(不是所有的不同IDENTs拉):

SELECT DISTINCT(IDENT) 
    , ( UNIX_TIMESTAMP(now()) 
     - UNIX_TIMESTAMP(STR_TO_DATE(TIME, '%Y-%m-%d %H:%i:%s')) 
     )/86400 AS numdays 
FROM `PS_LOGIN_LOG` 
WHERE `USER` = 'someuser' 
GROUP BY IDENT 
HAVING `numdays` <= 5 
+0

什麼失敗?錯誤或錯誤的結果? – jAC

回答

1

這不是完全清楚你所說的「過去5天」的意思,但大意如下的東西應該做的絕招:

SELECT COUNT(DISTINCT IDENT) 
FROM PS_LOGIN_LOG 
WHERE USER = 'someuser' 
    AND TIME >= CURRENT_DATE - INTERVAL 5 DAY 
    AND TIME < CURRENT_DATE + INTERVAL 1 DAY 
+0

竅門,是=)謝謝! –