您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> MSSQL >> 如何判断选取日期在哪个日期区间并将相应日期读取出来

如何判断选取日期在哪个日期区间并将相应日期读取出来

来源:网络整理     时间:2016/8/13 12:45:09     关键词:

关于网友提出的“ 如何判断选取日期在哪个日期区间并将相应日期读取出来”问题疑问,本网通过在网上对“ 如何判断选取日期在哪个日期区间并将相应日期读取出来”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 如何判断选取日期在哪个日期区间并将相应日期读取出来
描述:

日期查询

有一个表 
公司名      开始日期       结束日期      费率
  A              2011/1/1     2011/3/31     0.1
  A              2011/4/1      2013/4/1      0.2
  A              2013/4/2      2014/1/1      0.6
  A               ..............         .............      .......
先给一个开始日期和结束日期   例如 2012/1/1     2013/12/31     想要判断【 2012/1/1】  【2013/12/31 】在哪个区间中,并将相应字段 例如 
 2011/4/1      2013/4/1     0.2 
 2013/4/2      2014/1/1      0.6
这几个数据取出来
解决方案1:


declare @begindate datetime,@enddate datetime
select @begindate='2012/1/1',@enddate='2013/12/31'
select a.*
 from [表名] a
 where a.开始日期 between @begindate and @enddate
 or a.结束日期 between @begindate and @enddate
解决方案2:

with table1(公司名, 开始日期, 结束日期, 费率) as
(
select 'A', convert(date, '2011/1/1'), convert(date, '2011/3/31'), 0.1 union all
select 'A', convert(date, '2011/4/1'), convert(date, '2013/4/1'), 0.2 union all
select 'A', convert(date, '2013/4/2'), convert(date, '2014/1/1'), 0.6 
)
, table2 as
(
select table1.*, ROW_NUMBER() over(order by 开始日期) rn from table1
)
select * from table2 
where rn >=(select rn from table2 where convert(date, '2012/1/1') between 开始日期 and 结束日期)
and rn <=(select rn from table2 where convert(date, '2013/12/31') between 开始日期 and 结束日期)

以上介绍了“ 如何判断选取日期在哪个日期区间并将相应日期读取出来”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3253088.html

相关图片

相关文章