问题描述
我正在使用下面的查询返回2021日历年的每个星期三的日期。
如何调整此查询以每隔一个星期三而不是每个星期三返回?
如何调整此查询以每隔一个星期三而不是每个星期三返回?
select distinct next_day(to_date('01-01-2021','mm-dd-yyyy')-1+level,'Wednesday') All_WEDS
from dual
connect by level <= floor(to_date('12-31-2021','mm-dd-yyyy') - to_date('01-01-2021','mm-dd-yyyy'))
order by All_WEDS; 专家解答
没有必要每天取货,然后取不同的值。你只需要周数和每隔一周连续一个星期三。
通过以下方式查找此信息:
* 计算一年中的第一个星期三到最后一天之间的天数
* 将其除以14
* 拿这个的天花板
然后,每隔一个星期三就可以找到一年中的第一个,并为每一行增加14天:
通过以下方式查找此信息:
* 计算一年中的第一个星期三到最后一天之间的天数
* 将其除以14
* 拿这个的天花板
然后,每隔一个星期三就可以找到一年中的第一个,并为每一行增加14天:
alter session set nls_date_format = ' DD Mon YYYY ';
select next_day (
to_date ( '01-01-2021','mm-dd-yyyy') - 1, 'Wednesday'
) + (
( level - 1 ) * 14
) all_weds
from dual
connect by level <= ceil ( (
add_months (
to_date ( '01-01-2021','mm-dd-yyyy'), 12
) - next_day (
to_date ( '01-01-2021','mm-dd-yyyy') - 1, 'Wednesday'
)
) / 7 / 2
)
order by all_weds;
ALL_WEDS
06 Jan 2021
20 Jan 2021
03 Feb 2021
17 Feb 2021
03 Mar 2021
17 Mar 2021
31 Mar 2021
14 Apr 2021
28 Apr 2021
12 May 2021
26 May 2021
09 Jun 2021
23 Jun 2021
07 Jul 2021
21 Jul 2021
04 Aug 2021
18 Aug 2021
01 Sep 2021
15 Sep 2021
29 Sep 2021
13 Oct 2021
27 Oct 2021
10 Nov 2021
24 Nov 2021
08 Dec 2021
22 Dec 2021 文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




