已归录
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
V$RMAN_OUTPUT 中的 STAMP 由 TIME 转换而来的计算公式为(强行按每月31天来计算时间戳):STAMP=(((((yyyy-1988)*12+mm-1)*31+dd-1)*24+hh)*60+mi)*60+ss;
1.查看 V$RMAN_STATUS 中的记录号为 41879 的开始时间和结束时间:
SQL> select START_TIME,END_TIME from v$rman_status where RECID=41879;
START_TIME END_TIME
------------------- -------------------
2020-10-26 17:38:33 2020-10-26 17:51:51
2.查看 V$RMAN_OUTPUT 中的记录号为 41879 的开始 stamp 和 结束 stamp。
SQL> select stamp,output,rman_status_recid from v$rman_output where RMAN_STATUS_RECID=41879 order by stamp;
STAMP OUTPUT RMAN_STATUS_RECID
---------- ---------------------------------------------------------------------------------------------------------------------------------- -----------------
1054834713 41879
......
1054835511 41879
3.下面看看这两个 stamp 跟前面的两个 time 是否一致
select 1054834713,
floor(1054834713/(86400*31*12))+1988 yyyy,
floor(mod(1054834713/(86400*31),12))+1 mm,
floor(mod(1054834713/86400,31))+1 dd,
floor(mod(1054834713/3600,24)) hh,
floor(mod(1054834713/60,60)) mi,
mod(1054834713,60) ss
from dual;
1054834713 YYYY MM DD HH MI SS
---------- ---------- ---------- ---------- ---------- ---------- ----------
1054834713 2020 10 26 17 38 33
select 1054835511,
floor(1054835511/(86400*31*12))+1988 yyyy,
floor(mod(1054835511/(86400*31),12))+1 mm,
floor(mod(1054835511/86400,31))+1 dd,
floor(mod(1054835511/3600,24)) hh,
floor(mod(1054835511/60,60)) mi,
mod(1054835511,60) ss
from dual;
1054835511 YYYY MM DD HH MI SS
---------- ---------- ---------- ---------- ---------- ---------- ----------
1054835511 2020 10 26 17 51 51
可见,这两个是一致的。