現在の時刻に日数を追加して列を更新したい。疑似構文では、次のようになります。
UPDATE foo
SET time = current_timestamp + days::integer
days は同じテーブルの列です。
現在の時刻に日数を追加して列を更新したい。疑似構文では、次のようになります。
UPDATE foo
SET time = current_timestamp + days::integer
days は同じテーブルの列です。
select now() + cast('1 day' as interval) * 3 -- example: 3 days
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
タイムゾーンなしの CalculateDate タイムスタンプ。
calculatedDate := current_timestamp + interval '1' day * days_count;