Oracle 使用PL/SQL递增多个时间戳值

Oracle 使用PL/SQL递增多个时间戳值,oracle,plsql,Oracle,Plsql,我一点也不了解Oracle,但我需要这样写: MySQL: SET @serial:=1; UPDATE table1 SET t = t + INTERVAL (@serial:=@serial+1) SECOND;` 更新所有记录的时间戳并将其增加1秒。如何在Oracle中实现这一点 问题更新: 我的措辞没有很好地解释我的问题 我想要一个变量(TimeStamp) 然后检查所有记录,每次以1秒的时间递增该变量,以更新记录。事实上,这很简单。只要做: update table1

我一点也不了解Oracle,但我需要这样写:

MySQL:

  SET @serial:=1;  
  UPDATE table1 SET t = t + INTERVAL (@serial:=@serial+1) SECOND;`
更新所有记录的时间戳并将其增加1秒。如何在Oracle中实现这一点

问题更新: 我的措辞没有很好地解释我的问题

我想要一个变量(TimeStamp)


然后检查所有记录,每次以1秒的时间递增该变量,以更新记录。

事实上,这很简单。只要做:

update table1 set t = t + 1/86400;
问题更新后,您可以执行以下操作:

DECLARE
    t_serial number;
    cursor c is select * from table1 for update of t;
    cr table1%rowtype;
BEGIN
    t_serial := 1;
    for cr in c loop
       UPDATE table1 SET t = t_serial/86400 WHERE CURRENT OF c;
       t_serial := t_serial + 1;
    end loop;
END;
另一种方法是

update table1 set t= t + interval '1' second;
阅读更多关于


根据您的更新,它应该是

DECLARE
    t_update_time date := sysdate;  
BEGIN
    update table1 set t=t_update_time + interval '1' second;
END;
此代码段将当前日期时间分配给t_update_time变量,并在t_update_time中声明的日期时间上添加1秒来更新记录。相应地更改时间分配


如果没有PL/SQL开关,它应该是

update table1 set t=to_date('21.01.2015 09:00:00','dd.mm.rrrr hh:mi:ss') + interval '1' second;

按照我的理解应该是这样的

DECLARE
    serial number := 1;
BEGIN
    update table1 set t= t + (( serial + rownum - 1 )/86400);
END;
如下所示

1st row -> 1 sec
2nd row -> 2 sec
.
.
nth row -> nsec

虽然串行从1开始

好的,只有一个问题。是我的错,我说得不够好。无论记录中的时间如何,我都希望从一个开始时间更新所有记录。我将编辑上面的问题。好的,只有一个问题。是我的错,我说得不够好。无论记录中的时间如何,我都希望从一个开始时间更新所有记录。我会编辑上面的问题。请看更新,我想这是你需要的。