ホーム DoRuby Oracleでカレンダーテーブルを使わずに日付を列挙する方法

Oracleでカレンダーテーブルを使わずに日付を列挙する方法

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

以前、Postgresqlで日付を列挙する方法を書きましたが

今回はOracleでの列挙方法について書きます。

 カレンダーテーブルがない!日付列挙したい!

postgresqlの場合→ http://doruby.kbmj.com/hotdog/20120920/Postgresql_generate_series_

今回はOracle、どうやったら実現できるのだろうか?

 答え(2014年2月の一カ月分を列挙する場合)

SELECT TO_DATE(STARTDATE + ROWNUM -1, ‘YYYY/MM/DD’) AS CALENDAR

FROM

(SELECT TRUNC(TO_DATE(‘2014-02-01’)) AS STARTDATE,

TO_NUMBER(TO_CHAR(LAST_DAY(TO_DATE(‘2014-02-01’)), ‘DD’)) AS DAYS

FROM DUAL),

ALL_CATALOG

WHERE ROWNUM <= DAYS

以下出力結果

CALENDAR

14-02-01

14-02-02

14-02-03

14-02-04

14-02-05

14-02-06

14-02-07

14-02-08

14-02-09

14-02-10

14-02-11

14-02-12

14-02-13

14-02-14

14-02-15

14-02-16

14-02-17

14-02-18

14-02-19

14-02-20

14-02-21

14-02-22

14-02-23

14-02-24

14-02-25

14-02-26

14-02-27

14-02-28

次回はMySQLでの取得方法を書きたいです。

記事を共有
モバイルバージョンを終了