対象日が属する年度を取得するFunctionサンプルです。
対象日はYYYYMMDD形式の日付文字列を使用します。
サンプル
例)対象日が属する年度を取得するFunction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
CREATE OR REPLACE FUNCTION F_GET_NENDO( a IN VARCHAR2 ) RETURN NUMBER IS dt DATE; ret NUMBER; BEGIN dt := TO_DATE(a, 'YYYYMMDD'); IF EXTRACT(MONTH FROM dt) >= 4 THEN ret := EXTRACT(YEAR FROM dt); ELSE ret := EXTRACT(YEAR FROM dt) -1; END IF; RETURN ret; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; / |
- 実行例「年度末日の場合」
- SQL>select F_GET_NENDO('20180331') from dual; F_GET_NENDO('20180331') ----------------------------------------- 2017
- 実行例「年度初日の場合」
- SQL>select F_GET_NENDO('20180401') from dual; F_GET_NENDO('20180401') ----------------------------------------- 2018
解説
- 年度は4月1日~3月31日です。
- YYYYMMDD形式の日付文字列でない場合はNULLが返ります。