SQL 查询从当前日期开始每周显示日期

SQL Query to display dates weekly from current date

我需要从当前日期开始的 48 个月内每周显示日期。

我想知道是否可以通过 SQL 或者我将不得不编写一个函数来实现它。

以下是我目前的 SQL :-

SELECT
  CALENDAR_DATE
FROM
  CALENDAR --My Table Name
WHERE
  (
   CALENDAR_DATE  >=  trunc(sysdate)
   AND
   CALENDAR_DATE  <=  ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 48)-1
  )

这会给我输出

9/10/2020
9/11/2020
9/12/2020
9/13/2020

预期输出:-

 9/10/2020
   9/17/2020
   9/24/2020
   10/01/2020

如果我理解正确的话:

WHERE CALENDAR_DATE  >=  trunc(sysdate) AND
      CALENDAR_DATE  <=  ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 48) - 1 AND
      MOD(CALENDAR_DATE - TRUNC(sysdate), 7) = 0

这对日期差异使用了mod()操作。您还可以查看星期几:

WHERE CALENDAR_DATE  >=  trunc(sysdate) AND
      CALENDAR_DATE  <=  ADD_MONTHS(TRUNC(SYSDATE, 'MONTH'), 48) - 1 AND
      TO_CHAR(CALENDAR_DATE, 'DY') = TO_CHAR(sysdate, 'DY')