在日常开发中,有时候会需要查询某个日期范围内,但是通过数据库查询时开始时间需要数据库有的才能查询到,若是在jsp界面输入的时间大于或小于数据库的日期是查询不出数据的;那么此时我们可以用交叉查询的方式,下面是我对这个的理解,若是有问题,望各位大神提出来,不胜感激!
在oracle中,有时需要用到查询日期范围:
UI中查询开始时间与结束时间,但是数据库中
开始时间如果与UI中的
开始时间不相同是查询不出数据的;
如:begin_time >= TO_DATE('2016-02-31', 'yyyy-mm-dd') and end_time <= TO_DATE('2016-05-01','yyyy-mm-dd');
所以需要取UI的开始\结束时间与数据库的开始\结束时间的交集
如:begin_time <= TO_DATE('2016-05-31', 'yyyy-mm-dd') AND end_time >= TO_DATE('2016-03-1', 'yyyy-mm-dd');
上面的意思是:数据库的开始时间<=UI的结束时间,数据库的结束时间>=UI的开始时间;
图解:
UI代码jsp界面上输入的
以上的图就是取日期范围的交集;