トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
10-273 年度の開始日を求める
SQLパズル
target
----------
2009-01-01
2009-09-01
2009-10-01
2009-12-01
10月1日を年度の開始日として、
target列の日付以下で最新の、年度の開始日を求める。
出力結果
target OCT
---------- ----------
2009-01-01 2008-10-01
2009-09-01 2008-10-01
2009-10-01 2009-10-01
2009-12-01 2009-10-01
SQL
select column_value as target,
add_months(trunc(add_months(column_value,-9),'yyyy'),9) as oct
from table(sys.odciDateList(
date '2009-01-01',date '2009-09-01',
date '2009-10-01',date '2009-12-01'));
解説
add_months関数で9ケ月減算して、
trunc関数で切り捨てて、
add_months関数で9ケ月加算してます。