我有一个包含6000个条目的表,我想为每个条目添加一个带有时间戳的列。从开始值(could be NOW())开始,更新应该将每个条目的第一个值增加一小时。
'2014-12-04 01:00:00.000'
'2014-12-04 02:00:00.000'
'2014-12-04 03:00:00.000'
我在想一个窗口函数来做这个。
该表具有唯一的id和几何索引(gid)。
最佳答案
像这样的:
update the_table
set ts_column = current_timestamp + interval '1' hour * x.rn
from (
select id, row_number() over (order by id) rn
from the_table
) x
where x.id = the_table.id;
current_timestamp
返回事务开始时的当前时间,因此该值在语句运行时不会更改,因此该间隔始终添加到相同的基值。关于postgresql - 如何使用增加的时间戳来更新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27295215/