where beginTime<=@rq and isnull(endTime,getdate())>=@rq
and (endTime is null or (endTime-1)>=@rq)--其中begingTime:开始时间,endTime 结束时间(可能为空),@rq为一个传入的时间参数
and (endTime is null or (endTime-1)>=@rq)--其中begingTime:开始时间,endTime 结束时间(可能为空),@rq为一个传入的时间参数
OR (endTime is null or (endTime-1)>=@rq)这样?
where beginTime<=@rq and isnull(endTime,getdate())>=@rq
and (endTime is null or (endTime-1)>=@rq)
--翻译一下
--如果endTime为null,则取 beginTime <= @rq <= getdate()之间的记录;
--如果endTime不为null,则取beginTime <= @rq <= getdate()-1天,之间的记录
如果是这个意思那也就是where endTime is null and beginTime<=@rq and @rq<=getdate()
union all
where endTime is not null and beginTime<=@rq and @rq<=endTime-1??
or endTime is null
or (endTime-1)>=@rq了嘛,还是不是?
where beginTime<=@rq and isnull(endTime-1,getdate())>=@rq
觉得跟这个差不多吧。
如果是这个意思那也就是where endTime is null and beginTime<=@rq and @rq<=getdate()
union all
where endTime is not null and beginTime<=@rq and @rq<=endTime-1??
对,翻译出来。是这个意思
意思是开始时间小于传入的时间并且结束时间(当结束时间为空时,取当前时间)大于传入时间,并且结束时间为空或者结束时间