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

PostgreSQL自作関数

日付を加算する関数

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

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

 

引数

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

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

 

返り値

加算した後の日付

 

コード

CREATE OR REPLACE FUNCTION date_add(
    timestamp with time zone,
    integer)
  RETURNS timestamp with time zone 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(timestamp with time zone, integer)
  OWNER TO postgres;

※PostgreSQL12で動作確認済み

 

実行例

select * from date_add('2019/9/10 09:00:00',5);
--2019-09-15 09:00:00+09

select * from date_add('2019/9/10 09:00:00',-5);
--2019-09-05 09:00:00+09

 

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

日付を加算する(Date型)

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

日付の差を計算する

西暦から和暦へ変換する

曜日を取得する

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