sql >> データベース >  >> RDS >> Oracle

SQLで週末を除外するにはどうすればよいですか?

    次のフィルターを追加するだけです。 :

    WHERE TO_CHAR(date_column, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')
    

    クエリは次のようになります:

    SELECT SLA_Date
       FROM orders
     WHERE TO_CHAR(SLA_Date, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')
    

    たとえば(WITH句はテストケースを作成するためだけのものです)、以下のクエリは、1st May 2015の範囲の平日(つまり、土曜日と日曜日を除く)のみを表示します。 31st May 2015へ :

    SQL> WITH DATA AS
      2    (SELECT to_date('05/01/2015', 'MM/DD/YYYY') date1,
      3      to_date('05/31/2015', 'MM/DD/YYYY') date2
      4    FROM dual
      5    )
      6  SELECT date1+LEVEL-1 the_date,
      7        TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN') day
      8  FROM DATA
      9  WHERE TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN')
     10        NOT IN ('SAT', 'SUN')
     11  CONNECT BY LEVEL <= date2-date1+1;
    
    THE_DATE  DAY
    --------- ---
    01-MAY-15 FRI
    04-MAY-15 MON
    05-MAY-15 TUE
    06-MAY-15 WED
    07-MAY-15 THU
    08-MAY-15 FRI
    11-MAY-15 MON
    12-MAY-15 TUE
    13-MAY-15 WED
    14-MAY-15 THU
    15-MAY-15 FRI
    18-MAY-15 MON
    19-MAY-15 TUE
    20-MAY-15 WED
    21-MAY-15 THU
    22-MAY-15 FRI
    25-MAY-15 MON
    26-MAY-15 TUE
    27-MAY-15 WED
    28-MAY-15 THU
    29-MAY-15 FRI
    
    21 rows selected.
    
    SQL>
    

    詳細な例については、 2つの日付の間の日付、月名、週番号、日番号を生成します



    1. Oracle:YEARキーワードが無効です

    2. syncdbなしでDjangoを使用すると、リレーションが見つかりませんというエラーが発生します

    3. SQLServerの緊急モードからデータベースを回復する

    4. スイングは、mysqlデータベースからテキストフィールドにデータを取得します