关于数据库如何将两个时间区间的比较假设我数据库有SelectedMan表,其中有字段promulgateTime,还有个DateDi
关于数据库如何将两个时间区间的比较
假设我数据库有SelectedMan表,其中有字段promulgateTime,还有个DateDiffTime字段。
promulgateTime相当是起始时间,DateDiffTime是截至时间。
然后从外部获取到一个时间区间,假设 2012/11/23 和 2012/11/26
用语句如何查出select * from SelectedMan where
promulgateTime ~ DateDiffTime 不再这 2012/11/23 ~ 2012/11/26
区间里的数据?
[最优解释]
select * from SelectedMan where promulgateTime <'2012-11-23' or DateDiffTime >'2012-11-26'
???
[其他解释]
select
* from SelectedMan where promulgateTime not between '2012/11/23' and '2012/11/26'
or DateDiffTime not between '2012/11/23' and '2012/11/26'
这样可能不全对 貌似你是说的这两个时间区间没有交集?
[其他解释]
--如果说一个是开始时间 一个是结束时间 那么promulgateTime必定大于DateDiffTime
select * from SelectedMan
where promulgateTime>'2012/11/26' or DateDiffTime<'2012/11/23'
--从数学集合上说 这样可以保证没有交集
[其他解释]
你想想看 你给出的是一个区间 叫A区间吧 然后你的开始时间和结束时间又可以构成一个区间 叫B区间吧
要这两个区间没有交集 是不是只需B区间的开始值大于A区间的结束值 或者B区间的结束值 小于A区间的开始值 用数学的话说 就是最小值大于最大值 最大值小于最小值 这个就可以恒成立
[其他解释]
是,我要的就是两个没有集合没有交集的数据,把有交集的数据筛选掉
[其他解释]
貌似还是有交集啊3楼的代码我没看懂啊,
promulgateTime相当是开始时间,DateDiffTime是结束时间
promulgateTime只会在DateDiffTime之前,就是比它小啊
所以3楼代码没看懂
