读书人

如何用sql根据当天时间查询连续登陆

发布时间: 2012-04-14 17:14:21 作者: rapoo

怎么用sql根据当天时间查询连续登陆
比如我要根据今天的时间来查询用户或某个用户这7天来是否有连续登陆。

[解决办法]
一个笨方法

SQL code
create table #loginlog(logintime datetime,u_id int)insert into #loginlog select '2011-12-16',907insert into #loginlog select '2011-12-17',907insert into #loginlog select '2011-12-18',907insert into #loginlog select '2011-12-14',1100insert into #loginlog select '2011-12-15',1100insert into #loginlog select '2011-12-16',1100insert into #loginlog select '2011-12-13',1200insert into #loginlog select '2011-12-14',1200insert into #loginlog select '2011-12-16',1200insert into #loginlog select '2011-12-17',1200insert into #loginlog select '2011-12-18',1200godeclare @date datetimeSET @date='2011-12-16'select a.u_id from #loginlog ajoin (select u_id  from #loginlog where logintime=DATEADD(D,-1,@date))b on b.u_id=a.u_idjoin (select u_id  from #loginlog where logintime=DATEADD(D,-2,@date))c on c.u_id=a.u_idwhere logintime=@date drop table #loginlog
[解决办法]
select distinct u_id,count(*) as 连续登陆次数 from loginlog
where logintime between convert(varchar(10),DATEADD(DD,-3,'2011-12-18'),120)
and CONVERT(varchar(10),'2011-12-18',120)
group by u_id
having COUNT(*)>=3

读书人网 >SQL Server

热点推荐