我使用postgres作为我的数据库,我有一个表,有一个日期列。本列当前值为20121-04-1 17:19:08
我想更新此列的值,并将日期20(或任何其他天数)向前移动,因此新值将是20121-04-20 17:19:08
我没有手动操作的原因是因为我有太多的行要移动所以我需要一个查询,我需要自由选择未来的天数
Thanks in advance
您可以使用INTERVAL
-
SELECT CURRENT_DATE + INTERVAL '20 days';
在Nikhil Patil的帮助下,我创建了下一个查询:
select 'UPDATE itpserver.managed_incidents SET trigger_time = ''' || trigger_time || ''' where id = ' || id::text || ';'
from (
select id, trigger_time + INTERVAL '120 days' trigger_time
FROM itpserver.managed_incidents
) a
where 1=1
group by id,trigger_time
order by id
这个查询创建了更新表中所有行所需的所有更新查询。(trigger_time是日期列)。
在它创建了我需要的所有更新查询之后,我将它们作为sql脚本同时运行