查询日期范围时SQL条件的写法

原创 2012年03月22日 11:33:57

在Java web页面开发中经常遇到检索条件包含一个开始日期、终止日期,输入后,查询符合该日期范围内的记录。对于这样的需求我们要了解清楚客户到底想要检索出什么样的数据。如果检出的数据包含了以下几种情况,那么就基本能够满足绝大多数需求:

1、表中数据的开始日、终止日完全落在检索条件范围内;

2、表中的数据与检索条件范围有交集;

3、表中的数据完全包含了检索条件范围;

4、表中数据的日期范围完全落在检索条件范围之内。

一般来说客户需要的数据可能是以上4中情况中的任何一种之一,都需要检索出来。符合以上4中case的SQL文如下:

//委托时间开始、委托时间结束都不为空
sql.append(" and (to_char(b.start_Time,'YYYYMMDD') between :startTime and :endTime");
sql.append(" or to_char(b.end_Time,'YYYYMMDD') between :startTime and :endTime)");

//委托时间开始不空、结束时间为空
if(!StringUtil.isEmpty(strTmp_1) && StringUtil.isEmpty(strTmp_2)){
   	sql.append(" and to_char(b.start_Time,'YYYYMMDD') >=:startTime ");
}
//委托时间开始空、结束时间为不空
if(StringUtil.isEmpty(strTmp_1) && !StringUtil.isEmpty(strTmp_2)){
	sql.append(" and to_char(b.end_Time,'YYYYMMDD') <=:endTime ");}

这样就包含了以上所有情况。

相关文章推荐

sql判断时间范围

SELECT * FROM msg_personchat_t WHERE send_userid='28' AND critime>'2014-03-30' AND critime

sql查询一段日期内的某个时间段的数据量,该如何解决

sql查询一段日期内的某个时间段的数据量 例如:想查询BOOK_DATE在2010-06-01到2010-08-01之间的13点到15点之间的数据                       ...

sql 根据日期模糊查询&SQL Server dateTime类型 模糊查询

曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm:...

关于 java 按时间条件查询 sql语句

oracle 按时间查询可以有2种形式 to_date  and  to_char for example: // 将数据库字段转成char 进行查询 select * from tableName...

必须知道的SQL编写技巧,多条件查询不拼字符串的写法

在做项目中,我们经常遇到复杂的查询方法,要根据用户的输入,判断某个参数是否合法,合法的话才能当作过滤条件,我们通常的做法是把查询SQL赋值给一个字符串变量,然后根据判断条件动态的拼接where条件进行...

使用Sql按日期条件查询

原文地址:http://blog.sina.com.cn/s/blog_93dccc950101l3z9.html --查询当天(1: select * from ShopOrder wh...

P处理的中有大量判断条件是的sql写法

在执行P处理时需要根据传经来的参数来写where条件的时候可能因为,参数太多,或者传值的范围太多而导致sql的where条件不好写。嵌套什么的都out。 最好的方法是,定义一个变量如: v_strS...
  • cdz1022
  • cdz1022
  • 2012年01月13日 18:05
  • 325

mybatis针对Oracle数据库进行(单个或多个条件)批量操作(新增、修改、删除)的sql写法--mysql

1、批量新增:   insert into TB_DUTY select SEQ_TB_DUTY.nextval,A.* from( SELECT #{i...

使用原生sql查询数据返回object类型list时,转换数据列出现转换类型错误(但写法正确)

转换object类型数据出现转换类型错误 在使用原生sql进行数据查询时,得到object类型数据进行类型转换时,一直报错,但是类型转化的写法正确,此时需要考虑的造成出错原因可能在于原生sql的...

Lucene学习(五):指定范围查询和多条件查询

/** * 指定项范围搜索 * @throws Exception */ @Test public void testTermRangeQuery()throws Exception{...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查询日期范围时SQL条件的写法
举报原因:
原因补充:

(最多只允许输入30个字)