2009-05-08 16 views

Antwort

6
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); 

Nun würde diese Arbeit:

update foo set time = current_timestamp + 3 /* day variable here, 
or a column from your table */ 

Hinweis:

aus irgendeinem Grund, das Hinzufügen eine ganze Zahl bisher eingebaut ist in Postgres, das funktionieren würde:

würde dies nicht (es sei denn Sie Ihren eigenen Operator definieren, siehe oben):

select current_timestamp + 3 
+0

Danke, das war wirklich ein Augenöffner für das, was ich mit postgresql machen kann – egaga

5
select now() + cast('1 day' as interval) * 3 -- example: 3 days 
1

calculatedDate Zeitstempel ohne Zeitzone;

calculatedDate := current_timestamp + interval '1' day * days_count; 
Verwandte Themen