当前位置: 代码迷 >> Sql Server >> 如何用sql根据当天时间查询连续登陆
  详细解决方案

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

热度:90   发布时间:2016-04-27 14:13:49.0
怎么用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 [email protected] 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
  相关解决方案