SQL : 开始日期和结束日期,SQL找出中间的所有日期. 关于天数。

有个需求, 找出表中,开始时间和结束时间段内,其中没有的时间.

于是,做法如下:

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  来看到。

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值