34,837
社区成员




declare @tb table (id int,username varchar(10),date datetime)
insert into @tb select 1,'user1','2007-12-20'
insert into @tb select 2,'user2','2007-12-31'
insert into @tb select 3,'user1','2008-1-1'
declare @dt datetime
set @dt = '2008-1-7'
select top 1 * from @tb where dateadd(dd,-6, @dt)>=date order by date desc
set nocount on
declare @t table(id int,username varchar(10),date datetime)
insert into @t select 1,'user1','2007-12-20'
insert into @t select 2,'user2','2007-12-31'
insert into @t select 3,'user1','2008-1-1'
select username,max(date),datediff(d,max(date) ,getdate()) as 差
from @t
where username = 'user1'
group by username
/*
username 差
---------- ------------------------------------------------------ -----------
user1 2008-01-01 00:00:00.000 6
*/
select *,datediff(d,[date],getdate())
from @t a
where datediff(d,[date],getdate()) < 6
and not exists(select 1 from @t where a.username = username and [date]>a.[date])
and username = 'user1'
/*
id username date
----------- ---------- ------------------------------------------------------ -----------
*/
select *,datediff(d,[date],getdate())
from @t a
where datediff(d,[date],getdate()) <= 6
and not exists(select 1 from @t where a.username = username and [date]>a.[date])
and username = 'user1'
/*
id username date
----------- ---------- ------------------------------------------------------ -----------
3 user1 2008-01-01 00:00:00.000 6
*/
select max(date) from [tbl] where usename='user1' and datediff(day,date,getdate())>6
set nocount on
declare @t table(id int,username varchar(10),date datetime)
insert into @t select 1,'user1','2007-12-20'
insert into @t select 2,'user2','2007-12-31'
insert into @t select 3,'user1','2008-1-1'
select username,max(date),datediff(d,max(date) ,getdate()) as 差
from @t
where username = 'user1'
group by username
/*
username 差
---------- ------------------------------------------------------ -----------
user1 2008-01-01 00:00:00.000 6
*/