首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL查找连续日期

问mySQL查找连续日期
EN

Stack Overflow用户
提问于 2021-05-10 08:39:43
回答 1查看 33关注 0票数 0

给定一个具有以下列的数据库:(int)id,(DATE)beginDay,(DATE)endDay

找到相隔1天的连续日期,并输出beginDay和endDay

i.e

代码语言:javascript
复制
 1 | 2011-01-01    2011-01-02
 2 | 2011-01-02    2011-01-03
 3 | 2011-01-03    2011-01-07
 4 | 2011-02-12    2011-02-13

打印

代码语言:javascript
复制
2011-01-01 2011-01-03
2011-02-12 2011-02-13
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-10 08:41:57

这是一种缝隙和岛屿问题。您可以通过从日期中减去一系列值来解决这个问题--如果日期是连续的,则差异是恒定的。

如果您正在查看beginday,您可以使用:

代码语言:javascript
复制
select min(beginday), max(beginday)
from (select t.*,
             row_number() over (order by beginday) as seqnum
      from t
     ) t
group by beginday - interval seqnum day;

如果你关心endday,你可以直接使用:

代码语言:javascript
复制
select t.*
from t
where endday = begindate + interval 1 day;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67463490

复制
相关文章

相似问题

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