SQL:登录后1分钟注销的用户列表

时间:2011-11-23 16:21:41

标签: sql-server

我有一张这样的表:

log_id | user_id | login_date | logout_date

我需要运行一个查询来让用户在登录后最多注册1分钟。

因此,如果用户在2:02:02登录,然后在2:02:34注销。我希望他们在这个列表中。

但是,用户在2:03:00登录然后在2:04:01登出我不希望他们出现在此列表中。

任何想法如何编写此查询?提前谢谢!

2 个答案:

答案 0 :(得分:4)

select *
from yourTable
where datediff(ss, login_date, logout_date) <= 60

答案 1 :(得分:3)

SELECT user_id FROM tbl WHERE logout_date <= DATEADD(mi, 1, login_date)

当然,如果您的表为每次登录保留一条记录,则会返回登录,而不是用户。因此,如果他们多次登录一分钟,同一个用户可能会多次出现......

如果您只想要一个user_ids列表,该列表在任何时候登录的时间不到一分钟,那么就...

SELECT DISTINCT user_id FROM tbl WHERE logout_date <= DATEADD(mi, 1, login_date)