有个需求, 找出表中,开始时间和结束时间段内,其中没有的时间.
于是,做法如下:
1. 子表 @S 就是你的实际表.
2。母表 @t 循环出子表中,开始时间和结束时间段内的所有时间。
3、 select * from @t where @s.TheDay not in (select @t)
麻烦点就是,如何去找到母表@t 即,给个开始日期和结束日期,
---找中间中断的时间 --- 正式版 开始
declare @t table(s datetime)
declare @s datetime,@s1 datetime
--开始时间
select @s=min(TheDay) from Result_LoginCount
--结束时间
select @s1=max(TheDay) from Result_LoginCount
while @s <= @s1
begin
insert into @t select @s
set @s = dateadd(dd,1,@s)
end
select * from @t where s not in (select TheDay from Result_LoginCount group by TheDay)
---找中间中断的时间 --- 正式版 结束
其中的 @t 就是结果了
可以在结束的时候, select * from @t 来看到。