晕,早上回帖,怎么都看不大懂搂主的意思。汗
select col_a,col_b from t where t.col_b<to_date('2006-06-01') or t.col_b>to_date('2006-06-02')
不知道是不是你要的
select col_a,col_b from t where t.col_b<to_date('2006-06-01') or t.col_b>to_date('2006-06-02')
不知道是不是你要的
传入的值是 testA testB那么,二者有交集的情况可以如下表示:where (testA between dateA and dateB) or (testB between dateA and dateB)你现在需要的是没有交集的,那就取反即可where not ((testA between dateA and dateB) or (testB between dateA and dateB))
where (testA between dateA and dateB) or (testB between dateA and dateB)
--------------
这样是不对的,举个例子:
dateA:6-1
dateB:6-2
testA:5-1
testB:7-1
如上,testA,testB和dateA,dateB显然是有交集的,但按上面条件是查不到的
没有交集可以这样来查:
dateBegin,dateEnd为字段,datemin,datemax为传值
select * from tablename where dateEnd<datemin or dateBegin>datemax
传入的值是 testA testB那么,二者有交集的情况可以如下表示:where (testA between dateA and dateB) or (testB between dateA and dateB)
or ((dateA between testA and testB) and (dateB between testA and testB))你现在需要的是没有交集的,那就取反即可where not ( (testA between dateA and dateB) or (testB between dateA and dateB)
or ((dateA between testA and testB) and (dateB between testA and testB)) )自己测试一下看吧
没有交集可以这样来查:
dateBegin,dateEnd为字段,datemin,datemax为传值
select * from tablename where dateEnd<datemin or dateBegin>datemax
------------这样就要求传入的值必须事先明确大小关系,如果用存储过程来做还行