create function add_days_to_timestamp(t timestamptz, d int)
returns timestamptz
as
$$
begin
return t + interval '1' day * d;
end;
$$ language 'plpgsql';
create operator + (leftarg = timestamptz, rightarg = int,
procedure = add_days_to_timestamp);
Теперь это будет работать:
update foo set time = current_timestamp + 3 /* day variable here,
or a column from your table */
Примечание:
по некоторым причинам, добавление целого числа к дате встроено в Postgres, это будет работать:
select current_timestamp::date + 3 -- but only a date
это не будет (если вы не определите свой собственный оператор, см. Выше):
select current_timestamp + 3