我有一张这样的表:
log_id | user_id | login_date | logout_date
我需要运行一个查询来让用户在登录后最多注册1分钟。
因此,如果用户在2:02:02登录,然后在2:02:34注销。我希望他们在这个列表中。
但是,用户在2:03:00登录然后在2:04:01登出我不希望他们出现在此列表中。
任何想法如何编写此查询?提前谢谢!
答案 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)