【PostgreSQL】日付を加算する(Date型)

PostgreSQL自作関数

日付を加算する関数

ある日付(=引数1)に対し、指定した日数(=引数2)を加算する関数です。

日付を加算する関数(引数:timestamp型)はこちら

 

引数

引数1(date)  :加算する対象の日付

引数2(integer):加算する日付

 

返り値

加算した後の日付

 

コード

CREATE OR REPLACE FUNCTION date_add(
    date,
    integer)
  RETURNS date AS
$BODY$
declare

	d_target  	alias for $1;	--引数1:加算する対象の日付
	i_add_day  	alias for $2;	--引数2:加える日数

begin

	return d_target + cast(cast(i_add_day as character varying) || ' days' as INTERVAL);
	
end;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION date_add(date, integer)
  OWNER TO postgres;

※ PostgreSQL12で動作確認済み

 

実行例

--'2019/9/5'に5日加算する
select * from date_add('2019/9/10',5);   --2019/9/15

--'2019/9/5'に-5日加算する(=5日前を計算する)
select * from date_add('2019/9/10',-5);  --2019/9/5

 

他にもこんな関数があります(日付操作の関数)

日付であるかのチェック(IsDate)

日付の差を計算する

西暦から和暦へ変換する

曜日を取得する

次の月曜日、火曜日、○曜日を求める(next_day関数)