その他
    ホーム 技術発信 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での取得方法を書きたいです。

    記事を共有