查询日期范围时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 User where datediff(year,Createdate,getdate())=0 --一月内注册查询 select * from ...
  • xinyanan1992
  • xinyanan1992
  • 2016年05月16日 16:42
  • 922

SQL时间范围语句(包含日期段和时间段)

select * from xy where (id=27 or id=28)   and convert(varchar(10),WRITETIME,120) bet...
  • qq_14861367
  • qq_14861367
  • 2016年06月21日 11:10
  • 4549

sql判断时间范围

SELECT * FROM msg_personchat_t WHERE send_userid='28' AND critime>'2014-03-30' AND critime
  • UP19910522
  • UP19910522
  • 2014年05月31日 18:11
  • 2870

oracle --sql--查询日期区间的数据

两种方法两种情况: 1:查询给定时间在开始时间列与结束时间列范围中数据; 2:查询日期列在开始时间列与结束时间列范围中数据;第一种:, = select * from 表名 where ...
  • Dunhuang_Hyoutei
  • Dunhuang_Hyoutei
  • 2017年03月10日 16:09
  • 4258

sql语句中日期时间格式化查询 sql查询日期范围

期预示格式。为 style 参数供给的数据确定了 datetime 数据的预示体式格局。年份可以预示为两位或四位数。默许情况下,SQL Server 将年份预示为两位数。若要预示包括世纪的四位数年份 ...
  • sujiangliu
  • sujiangliu
  • 2010年11月02日 15:12
  • 11159

Sql Server查询指定范围(一周、一月、本周、本月等)内的数据

查询当天日期在一周年的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 ...
  • beyondqd
  • beyondqd
  • 2016年04月29日 14:37
  • 1939

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

在Java web页面开发中经常遇到检索条件包含一个开始日期、终止日期,输入后,查询符合该日期范围内的记录。对于这样的需求我们要了解清楚客户到底想要检索出什么样的数据。如果检出的数据包含了以下几种情况...
  • tjdy7707
  • tjdy7707
  • 2012年03月22日 11:33
  • 6357

SQL查询指定时间[字符串]范围内的数据

SELECT * FROM  mytable  WHERE   [add_time]  BETWEEN STR_TO_DATE('2013-07-26','%Y-%m-%d') AND STR_TO_...
  • kaidishi
  • kaidishi
  • 2013年07月27日 13:13
  • 1169

Mysql SQL查询今天、昨天、n天内、第n天

SQL语句如下: 查询当天的所有数据 SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=0 查询昨天的所有数据 SELECT * FROM 表名 WHERE DATE...
  • baidu_27222643
  • baidu_27222643
  • 2017年03月05日 15:21
  • 6796

sql 查询中日期条件的优化

1.实例分析如下:select count(0) from info_terminal_user a where trunc(a.REG_DATE,dd) = sysdate;执行计划--------...
  • wenhuiqiao
  • wenhuiqiao
  • 2007年08月16日 13:21
  • 1952
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:查询日期范围时SQL条件的写法
举报原因:
原因补充:

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