IDENT、TIME、および USER の 3 つの列を含む mySQL テーブルがあります。すべて varchar 型です。例えば:
IDENT = someuser::24::myisp.net::us
TIME = 2012-11-05 1:45:42
USER = someuser
私がやろうとしているのは、過去 5 日間の個別の IDENT の数を数えることです。次のことを試しましたが、失敗しました (すべての個別の IDENT がプルされたわけではありません)。
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