【Oracle】【PL/SQL】年月データの1年後を取得する(ADD_MONTHS)

年月データの1年後を取得する(ADD_MONTHS)

やりたいこと

ADD_MONTHS関数は指定した日時に指定の月数を足して返す関数です。

SELECT 
    ADD_MONTHS(SYSDATE,1), -- 1ヶ月後の日付を取得
    ADD_MONTHS(SYSDATE,12) -- 1年後の日付を取得
FROM dual;

ここではこの関数を使用し、年(yyyy)や年月(yyyymm)といったデータの1年後のデータを取得します。
ADD_MONTHS関数は年月日揃っているデータに対し処理を行うため、年や年月のデータに対してはそのまま使用することはできません。

コード

以下のようなデータが存在した時に下記コードを実行し、それぞれ1年後のデータを取得します。

年月
2019 201904

取得したい内容

年月
2020 202004
SELECT
    TO_CHAR(ADD_MONTHS(CONCAT(test_yyyy,'0101'),12),'yyyy'),      -- yyyy形式
    TO_CHAR(ADD_MONTHS(CONCAT(test_yyyymm,'01'),12),'yyyymm')     -- yyyymm形式
FROM dual;

上記コードで行っているのは以下のような内容です。
CONCAT関数で年のみもっていないデータに疑似的に月日のデータを付与する
ADD_MONTHS関数で12ヶ月後(1年後)の日付を取得する
TO_CHAR関数で取得した日付を成型しなおす

コメントを残す

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

CAPTCHA