2

1 つの日付は、たとえば (2013 年 5 月 11 日、つまり土曜日) に与えられます。この日付の 7 営業日前 (MON-FRI) を見つけなければなりません。それは 2013 年 5 月 3 日、つまり金曜日です。2 つの日付の間の営業日を調べる方法を知っています。に :-

SELECT from_date- todate - ((
          TRUNC (NEXT_DAY (from_date, 'SAT') - NEXT_DAY (todate - 1, 'SAT')) / 7) + (
          TRUNC (NEXT_DAY (from_date, 'SUN') - NEXT_DAY (todate - 1, 'SUN')) / 7)) + 1
FROM   dual;

しかし、今では指定された日付が 1 つしかなく、この日の 7 日前を検索する必要があります (営業日によると!)

4

2 に答える 2

2

sysdate必要な日付に置き換えます。

02:35:58 SYSTEM@sandbox> ed
Wrote file S:\spool\sandbox\BUFFER_SYSTEM_36.sql

  1  select sysdate - 7 seven_days_ago, min(sysdate - level) seven_bdays_ago
  2    from dual
  3   where rownum <= 7
  4     and to_char(sysdate - level, 'DY') not in ('SAT', 'SUN')
  5* connect by level <= 11
02:36:16 SYSTEM@sandbox> /

SEVEN_DAYS_AGO      SEVEN_BDAYS_AGO
------------------- -------------------
04.05.2013 02:36:17 02.05.2013 02:36:17

Elapsed: 00:00:00.03
于 2013-05-10T18:36:47.173 に答える