首页 > 数据库 > mysql教程 > 如何使用 SQL 生成多个日期范围内的所有日期?

如何使用 SQL 生成多个日期范围内的所有日期?

Mary-Kate Olsen
发布: 2025-01-04 22:32:40
原创
146 人浏览过

How to Generate All Dates Within Multiple Date Ranges Using SQL?

在多个日期范围之间生成日期

处理多个日期范围时,生成这些范围内的所有日期可能是一个挑战。让我们探索处理这种情况的有效解决方案。

提供的输入由两个日期范围组成:

ID  START_DATE      END_DATE 
101 April, 01 2013  April, 10 2013 
102   May, 10 2013    May, 12 2013
登录后复制

我们的目标是生成一个输出表,列出这些范围内的所有日期:

ID  Dates
101 April, 01 2013 
101 April, 02 2013  
101 April, 03 2013  
101 April, 04 2013  
101 April, 05 2013  
101 April, 06 2013  
101 April, 07 2013  
101 April, 08 2013  
101 April, 09 2013  
101 April, 10 2013  
102   May, 10 2013  
102   May, 11 2013  
102   May, 12 2013
登录后复制

为了实现这一点,我们可以利用以下 SQL 查询:

select 
  A.ID, 
  A.START_DATE+delta dt
from 
  t_dates A, 
  (
     select level-1 as delta 
     from dual 
     connect by level-1 <= (
       select max(end_date - start_date) from t_dates
     )
  )
where A.START_DATE+delta <= A.end_date
order by 1, 2
登录后复制

查询生成最大日期范围内所有可能的日期差异,然后将它们添加到每个开始日期以生成所需的输出。

以上是如何使用 SQL 生成多个日期范围内的所有日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板