プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[Oracle] 年月を羅列する

SQLだけで指定した範囲の年月を羅列します。
前にも似たようなのを投稿したかも。。
ほかのプログラムで組み立ててもいいんですが、どうせならSQLだけで実現したいですよね。

-- 2014/12から2014/01間の年月文字列を取得する
select to_char(add_months(to_date('2014/12','YYYY/MM'),-level + 1),'YYYY/MM') yyyymm from dual connect by level <= 12 * 1;

-- 当月から12カ月前までの年月文字列を取得する
select to_char(add_months(current_date,-level + 1),'YYYY/MM') yyyymm from dual connect by level <= 12 * 1;

--5年分
select to_char(add_months(current_date,-level + 1),'YYYY/MM') yyyymm from dual connect by level <= 12 * 5;

YYYYMM
-------
2014/12
2014/11
2014/10
2014/09
2014/08
2014/07
2014/06
2014/05
2014/04
2014/03
2014/02

YYYYMM
-------
2014/01

12行が選択されました。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください