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

加加斯里克

例如考虑这两个日期“2012-04-02” “2012-04-30”我想得到如下所示的输出但它不应该包括这个日期“2012-04-02” “2012-04-30”

**COLA**

2012-04-01  
2012-04-03  
2012-04-04  
2012-04-05  
2012-04-06  
2012-04-07
..
..
..
2012-04-29
2012-04-31
MT0

使用分层查询:

SELECT start_date + LEVEL - 1
FROM   (
  SELECT DATE '2012-04-02' + 1 AS start_date,
         DATE '2012-04-30' - 1 AS end_date
  FROM   DUAL
)
CONNECT BY start_date + LEVEL - 1 <= end_date;

或者,递归子查询分解子句:

WITH dates ( value ) AS (
  SELECT CAST( DATE '2014-04-02' + 1 AS DATE ) FROM DUAL
UNION ALL
  SELECT value + 1 FROM dates WHERE value + 1 < DATE '2014-04-30'
)
SELECT * FROM dates;

或者,如果您在除这些日期之外的整个月都这样做:

WITH boundaries ( start_date, end_date ) AS (
  SELECT DATE '2014-04-02', DATE '2014-04-30' FROM DUAL
)
SELECT TRUNC( start_date, 'MM' ) + LEVEL - 1
FROM   boundaries
WHERE  TRUNC( start_date, 'MM' ) + LEVEL - 1 NOT IN ( start_date, end_date )
CONNECT BY TRUNC( start_date, 'MM' ) + LEVEL - 1 <= LAST_DAY( end_date );

或者:

WITH boundaries ( start_date, end_date ) AS (
  SELECT DATE '2014-04-02', DATE '2014-04-30' FROM DUAL
),
dates ( value ) AS (
  SELECT TRUNC( start_date, 'MM' ) FROM boundaries
UNION ALL
  SELECT value + 1 FROM dates WHERE value + 1 <= LAST_DAY( value )
)
SELECT *
FROM   dates d
WHERE  NOT EXISTS ( SELECT 1 FROM boundaries WHERE d.value IN ( start_date, end_date ) );

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JavaScript:获取两个日期之间的所有月份?

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

如何在C#中获取两个日期之间的日期

如何获取两个日期之间的月份和年份列表

获取两个日期之间的所有月份

sparql获取两个日期之间的所有月份

如何在Swift 3中比较两个日期(NSDate)并获取它们之间的日期?

如何获取年份和两个日期之间的年份列表的月份名称

获取SQL中两个日期之间的日期列表

如何在swift4中连续获取两个日期之间的所有天数或列表?

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

在两个日期之间扩展月份

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

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

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

SQL查询以获取两个日期之间月份的日期范围列表

在TSQL中获取两个日期之间的月份

当两个日期不同时,如何在javascript中获取两个日期之间的差异

如何在两个日期之间获取值

如何获取SQL Server中两个日期之间的月份和年份的列表

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

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

如何在 Google AppMaker 中获取两个日期之间的日期范围?

有两个日期。如何创建这些日期之间的月份间隔列表?

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

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

根据特定格式获取两个日期之间的月份列表

获取两个日期之间特定月份和年份的天数 SQL

获取两个日期之间的月份最后几天的列表?