我不知道甲骨文所有,但我需要写是这样的:增量多时间戳值
的MySQL:
SET @serial:=1;
UPDATE table1 SET t = t + INTERVAL (@serial:[email protected]+1) SECOND;`
更新和一秒递增时间戳为所有记录。如何在Oracle中做到这一点?
问题更新: 我的措辞并没有很好地解释我的问题。
我想有一个变量(TimeStamp)。
然后遍历所有记录,每次增加此变量一秒钟以进行记录更新。
我不知道甲骨文所有,但我需要写是这样的:增量多时间戳值
的MySQL:
SET @serial:=1;
UPDATE table1 SET t = t + INTERVAL (@serial:[email protected]+1) SECOND;`
更新和一秒递增时间戳为所有记录。如何在Oracle中做到这一点?
问题更新: 我的措辞并没有很好地解释我的问题。
我想有一个变量(TimeStamp)。
然后遍历所有记录,每次增加此变量一秒钟以进行记录更新。
它应该是这样的按照我的理解
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
虽然serial
从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;
了解更多关于Interval literals
根据您的更新,它应该b È
DECLARE
t_update_time date := sysdate;
BEGIN
update table1 set t=t_update_time + interval '1' second;
END;
该片段当前日期时间指派给t_update_time变量,和1秒加到t_update_time声明的日期时间更新该记录。相应地更改t_update_time分配。
没有一个PL/SQL开关应该作为
update table1 set t=to_date('21.01.2015 09:00:00','dd.mm.rrrr hh:mi:ss') + interval '1' second;
哇。你是对的,这很简单。谢谢 – morne 2015-01-21 11:10:08
好的,只有一个问题。我的错我没说得好。不管记录中的时间如何,我想从一个开始时间更新所有记录。我将编辑上面的问题。 – morne 2015-01-21 11:14:58