关于网友提出的“ 如何判断选取日期在哪个日期区间并将相应日期读取出来”问题疑问,本网通过在网上对“ 如何判断选取日期在哪个日期区间并将相应日期读取出来”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 如何判断选取日期在哪个日期区间并将相应日期读取出来
描述:日期查询
有一个表
公司名 开始日期 结束日期 费率
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