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

渡された2つの日付の間の稼働日数を返すSQL

    とても簡単です:

        SQL> Select count(*)
          2  from ( select rownum rnum
          3          from all_objects
          4        where rownum <= to_date('18-dec-2009','dd-mon-yyyy') - 
        to_date('16-nov-2009')+1 )
          5    where to_char( to_date('16-nov-2009','dd-mon-yyyy')+rnum-1, 'DY' )
          6                not in ( 'SAT', 'SUN' )
    
    
          COUNT(*)
        ----------
                25
    
        SQL> Select to_char( to_date('16-nov-2009','dd-mon-yyyy')+rnum-1, 'DY dd-mon-yyyy' )
          2  from ( select rownum rnum
          3          from all_objects
          4        where rownum <= to_date('18-dec-2009','dd-mon-yyyy') - to_date('16-nov-2009')+1 )
          5    where to_char( to_date('16-nov-2009','dd-mon-yyyy')+rnum-1, 'DY' )
          6                not in ( 'SAT', 'SUN' )
    
    
    DAY_DATE
    ---------------
    MON 16-nov-2009
    TUE 17-nov-2009
    WED 18-nov-2009
    THU 19-nov-2009
    FRI 20-nov-2009
    MON 23-nov-2009
    TUE 24-nov-2009
    WED 25-nov-2009
    THU 26-nov-2009
    FRI 27-nov-2009
    MON 30-nov-2009
    TUE 01-dec-2009
    WED 02-dec-2009
    THU 03-dec-2009
    FRI 04-dec-2009
    MON 07-dec-2009
    TUE 08-dec-2009
    WED 09-dec-2009
    THU 10-dec-2009
    FRI 11-dec-2009
    MON 14-dec-2009
    TUE 15-dec-2009
    WED 16-dec-2009
    THU 17-dec-2009
    FRI 18-dec-2009
    
    25 rows selected.
    


    1. python / postgresql/psycopg2のユーザー入力から「orderby」句を安全に指定する

    2. git&phpfogを使用したPHPマルチデータベース環境

    3. Railsの移行:デフォルトとしてランダム文字列のmd5のpostgresql

    4. カスケード削除で呼び出しをトリガーする