使用 SQL 检测连续日期范围
简介
为日历应用程序准备数据时,通常需要从日期序列中提取连续的日期范围。这项任务可能具有挑战性,尤其是当日期间隔不一致时。
使用 SQL 的解决方案
要使用 SQL 解决此问题,我们可以采用以下方法:
SQL 查询
以下 SQL 查询实现上述方法:
WITH t AS ( SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i FROM table_name GROUP BY InfoDate ) SELECT MIN(d),MAX(d) FROM t GROUP BY DATEDIFF(day,i,d)
结果
查询将产生以下结果输出:
StartDate | EndDate |
---|---|
2013-12-04 | 2013-12-06 |
2013-12-09 | 2013-12-10 |
2014-01-01 | 2014-01-03 |
2014-01-06 | 2014-01-07 |
2014-01-29 | 2014-01-31 |
2014-02-03 | 2014-02-04 |
此输出提供原始数据中所有连续日期范围的开始日期和结束日期。
以上是SQL 如何识别连续的日期范围?的详细内容。更多信息请关注PHP中文网其他相关文章!