Oracle:使用 SQL 在日期范围之间选择日期 [英] Oracle: Select dates between date ranges using SQL

查看:69
本文介绍了Oracle:使用 SQL 在日期范围之间选择日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表 MY_DATES (START_DATE DATE, END_DATE DATE) 包含如下数据:

I have a table MY_DATES (START_DATE DATE, END_DATE DATE) with data like :

START_DATE        END_DATE
---------------------------
18-DEC-17         07-JAN-18
27-JAN-18         06-FEB-18
08-MAR-18         18-MAR-18

我需要使用如下 SQL 为我的表中的所有日期范围生成单列中的日期:

I need to generate dates for all the date ranges in my table in a single column using SQL like below:

DATES 
---------- 
18-DEC-17 
19-DEC-17 
20-DEC-17 
. 
. 
. 
06-JAN-18 
07-JAN-18 
27-JAN-18 
28-JAN-18 
29-JAN-18 
. 
. 
. 
05-FEB-18 
06-FEB-18 
08-MAR-18 
09-MAR-18 
10-MAR-18 
. 
. 
. 
18-MAR-18

我使用的是 oracle 11G.感谢您在这方面的任何帮助.

I am using oracle 11G. appreciate any help in this regard.

推荐答案

试试这个.

WITH t (sdt, ldt) AS (SELECT MIN (START_DATE), MAX (END_DATE) FROM MY_DATES)
SELECT *
  FROM (    SELECT sdt + LEVEL - 1 AS dates
              FROM t
        CONNECT BY LEVEL <= ldt - sdt + 1) c
 WHERE EXISTS
          (SELECT 1
             FROM MY_DATES d
            WHERE c.dates BETWEEN START_DATE AND END_DATE);

演示

这篇关于Oracle:使用 SQL 在日期范围之间选择日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆