LoginSignup
4
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-03-20

年月データの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関数で取得した日付を成型しなおす

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1