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')
我需要从当前日期开始的 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')