トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

10-49 第二金曜日を取得

SQLパズル

月ごとの第二金曜日を出力する

出力結果
        月  第二金曜日
----------  ----------
2005年10月  2005/10/14
2005年11月  2005/11/11
2005年12月  2005/12/09
2006年01月  2006/01/13
2006年02月  2006/02/10
2006年03月  2006/03/10
2006年04月  2006/04/14
2006年05月  2006/05/12
2006年06月  2006/06/09
2006年07月  2006/07/14

こちらを参考にさせていただきました


SQL

--■■■7日以降の最初の金曜日を取得する方法■■■
select to_char(val,'yyyy"年"mm"月"') as 月,
to_char(next_day(trunc(val,'mm')+7,'金'),'yyyy/mm/dd') as 第二金曜日
from (select add_months(sysdate,RowNum-5) as val
        from all_catalog
       where RowNum <= 10);

--■■■第一金曜日の7日後を取得する方法■■■
select to_char(val,'yyyy"年"mm"月"') as 月,
to_char(next_day(trunc(val,'mm')-1,'金')+7,'yyyy/mm/dd') as 第二金曜日
from (select add_months(sysdate,RowNum-5) as val
        from all_catalog
       where RowNum <= 10);


解説

next_day関数を使ってます