Oracle SQL。获取两个日期之间的日期

yxw158

我有一个带有两个日期列的表,如何获取这两个日期之间的日期并一一列出。这是测试脚本:

CREATE TABLE t1
   AS
      SELECT DATE '2020-1-31' AS startdate,
             DATE '2020-2-3' AS enddate
      FROM dual
      UNION
      SELECT DATE '2020-2-27' AS startdate,
             DATE '2020-3-3' AS enddate
      FROM dual;

SELECT *
FROM t1;


DROP TABLE t1;

我期望的结果集是:

在此处输入图片说明

我应该如何查询?提前致谢。

小脚丫

干得好:

SQL> select * From t1;

STARTDATE  ENDDATE
---------- ----------
01/31/2020 02/03/2020
02/27/2020 03/03/2020

SQL> select a.startdate, a.enddate,
  2    a.startdate + column_value - 1 dt
  3  from t1 a cross join
  4    table(cast(multiset(select level from dual
  5                        connect by level <= a.enddate - a.startdate + 1
  6                       ) as sys.odcinumberlist))
  7  order by dt;

STARTDATE  ENDDATE    DT
---------- ---------- ----------
01/31/2020 02/03/2020 01/31/2020
01/31/2020 02/03/2020 02/01/2020
01/31/2020 02/03/2020 02/02/2020
01/31/2020 02/03/2020 02/03/2020
02/27/2020 03/03/2020 02/27/2020
02/27/2020 03/03/2020 02/28/2020
02/27/2020 03/03/2020 02/29/2020
02/27/2020 03/03/2020 03/01/2020
02/27/2020 03/03/2020 03/02/2020
02/27/2020 03/03/2020 03/03/2020

10 rows selected.

SQL>

这称为行生成器技术(如果您也想要Google的话)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Oracle sql - 获取两个日期之间的月份 ID

oracle sql - 获取两个日期之间的差异(系统日期减去另一个表的日期值)

Oracle SQL查询列出两个日期之间的星期

两个日期之间的记录 Oracle SQL

如何在sql-ORACLE中获取两个日期之间的年差?

如何在oracle中获取特定月份的两个日期之间的日期列表

检查当前日期是否在两个日期之间Oracle SQL

检查一周的日期是否位于两个特定日期之间 SQL ORACLE

Oracle查询以获取两个日期之间的工作日数

如何计算Oracle中两个日期之间的of年数?

Oracle:在两个日期之间的月份中创建范围

如何计算oracle中两个日期之间的天数?

oracle查询两个小时之间的日期

在带有小时计数的sql oracle中的两个日期之间进行选择?

如何计算oracle sql中两个日期之间HH:MM:SS的差异?

Oracle SQL-多个ID的两个日期之间的差额

如何在Oracle 11g SQL中计算两个日期之间的差异

Oracle SQL - 如何计算两个日期之间的工作时间和分钟数

如何在Oracle SQL中获得两个日期之间的月份

ORACLE SQL 两个日期休眠的区别

如何在不同客户端的不同范围内获取 SQL-oracle 中两个日期之间的所有月份

列出Oracle中两个日期之间的所有日期

Oracle SQL:在两个句子之间获取文本

在Oracle中减去两个日期

Oracle SQL-如何确定两个日期之间的差异是否小于一分钟

Oracle SQL过滤器在两个日期之间的结果,但仅显示时间范围内的记录

Oracle SQL - 有效地查找两个日期之间的最后一个日期有效更改

Oracle:两个日期之间的天数和排除工作日如何处理负数

oracle或db2中两个表之间的合并日期范围