日付文字列(YYYYMMDD)に日数を加減算するFunctionです。
サンプル
例)日付文字列(YYYYMMDD)に日数を加減算するFunction
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
CREATE OR REPLACE FUNCTION FNC_YMD_ADD( a IN VARCHAR2 ,b IN NUMBER ) RETURN VARCHAR2 IS dt DATE; ret VARCHAR2(8); BEGIN dt := TO_DATE(a, 'YYYYMMDD') + b; ret := TO_CHAR(dt, 'YYYYMMDD'); RETURN ret; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; / |
- 実行例
- SQL> select FNC_YMD_ADD('20171201', 3) from dual; FNC_YMD_ADD('20171201', 3) --------------------------- 20171204
解説
- YYYYMMDD形式の日付文字列でない場合はNULLが返ります。
- 加算する日数はマイナス値でもOKです。