首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环遍历跨越前一个开始日期范围的日期范围

循环遍历跨越前一个开始日期范围的日期范围
EN

Stack Overflow用户
提问于 2016-08-22 21:18:18
回答 1查看 63关注 0票数 0

我有一系列的日期(开始日期和结束日期)如下:

代码语言:javascript
运行
复制
| StartDate  | EndDate    |  
| -----------| -----------|    
| 2016-09-03 | 2016-09-07 | 
| 2016-09-02 | 2016-09-08 |
| 2016-09-04 | 2016-09-06 |
| 2016-09-01 | 2016-09-06 |
| 2016-08-31 | 2016-09-02 |
| 2016-08-11 | 2016-08-14 |
| 2016-08-02 | 2016-08-03

我需要开始的日期范围与最大的EndDate跨越2016-09-05,这是固定的。在这种情况下是2016-09-02 - 2016-09-08。从这个日期范围,我使用StartDate作为我的新跨越日期,即2016-09-02。我现在需要找到的最大EndDate跨越2016-09-02,应该是2016-09-01到2016-09-06。再次,StartDate成为我的新跨越日期,即2016-09-01,所以还有一个日期范围跨越这是2016-08-31到2016-09-02。我的最后跨越日期是2016-08-31,因为没有更多的日期跨越这个日期。

这是一个简单的例子,它可能包含更多的日期,这些日期要么跨越前一个日期范围,要么根本不跨,因此应该被忽略。

如何在Server中做到这一点?有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 23:34:59

代码语言:javascript
运行
复制
create table #temp (dt1 date, dt2 date)
....
declare @dt_new date = '2016-09-05', @dt_old date

while (@dt_new is not null)

begin
    set @dt_old = @dt_new
    set @dt_new = null

    select top 1 @dt_new = dt1
    from #temp
    where dt1 < @dt_old and @dt_old < dt2
    order by dt2 desc
end

select @dt_old
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39088881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档