关闭

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

标签: sqljavaweb
5816人阅读 评论(0) 收藏 举报

在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 ");}

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:69821次
    • 积分:874
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论