現在の日に日数を追加してカラムを更新したい。疑似合成では、Postgresにcurrent_timestampとdaysカラムの合計を追加する
UPDATE foo
SET time = current_timestamp + days::integer
日は同じ表の列です。
現在の日に日数を追加してカラムを更新したい。疑似合成では、Postgresにcurrent_timestampとdaysカラムの合計を追加する
UPDATE foo
SET time = current_timestamp + days::integer
日は同じ表の列です。
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
ありがとう、これは私がpostgresqlでできることのために本当に目を開けてくれた – egaga
select now() + cast('1 day' as interval) * 3 -- example: 3 days
calculatedDateタイムスタンプをタイムゾーンなし。
calculatedDate := current_timestamp + interval '1' day * days_count;
「日」は、同じ表の列であり定数ではないことを忘れていました。 – egaga