トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
4-20 指定年の最初の日曜日を求める
SQLパズル
2000年から2015年までの、最初の日曜日を求める。
出力結果
Val FirstSun
---- --------
2000 2000/1/2
2001 2001/1/7
2002 2002/1/6
2003 2003/1/5
2004 2004/1/4
2005 2005/1/2
2006 2006/1/1
2007 2007/1/7
2008 2008/1/6
2009 2009/1/4
2010 2010/1/3
2011 2011/1/2
2012 2012/1/1
2013 2013/1/6
2014 2014/1/5
2015 2015/1/4
データ作成スクリプト
create table yyyyTable(Val) as
select cast(Column_Value as varChar2(5)) from table(sys.odciVarchar2List(
'2000','2001','2002','2003','2004',
'2005','2006','2007','2008','2009',
'2010','2011','2012','2013','2014','2015'));
SQL
--■■■next_day関数を使う方法■■■
select Val,next_day(to_date(Val || '01','yyyymm')-1,'日') as FirstSun
from yyyyTable;
--■■■trunc関数を使う方法■■■
select Val,trunc(to_date(Val || '01','yyyymm')+6,'day') as FirstSun
from yyyyTable;
解説