一直有个疑问,就是rman备分时没法指定时分秒,在格式中只有%T为YYYYMMDD,而%t表示为时是戳,它表示备份开始执行的时间戳,但怎么表现为直观的时间一直不知道么计算,下面给出一个公式:
SELECT TO_CHAR(730918324/(24 * 3600) +
TO_DATE('1987-08-01 00:00:00','YYYY-MM-DD HH24:MI:SS'),
'YYYYMMDD HH24:MI:SS')
FROM DUAL;
TO_DATE('1987-08-01 00:00:00','YYYY-MM-DD HH24:MI:SS'),
'YYYYMMDD HH24:MI:SS')
FROM DUAL;
或者可以输入%t所产生的值
SQL> DECLARE
2 TS NUMBER;
3 BEGIN
4 TS := &TS;
5 DBMS_OUTPUT.PUT_LINE(TO_CHAR(TS / (24 * 3600) +
6 TO_DATE('1987-08-01 00:00:00',
7 'YYYY-MM-DD HH24:MI:SS'),
8 'YYYY-MM-DD HH24:MI:SS'));
9
10 END;
11 /
输入 ts 的值: 730918324
原值 4: TS := &TS;
新值 4: TS := 730918324;
2010-09-28 16:52:04
2 TS NUMBER;
3 BEGIN
4 TS := &TS;
5 DBMS_OUTPUT.PUT_LINE(TO_CHAR(TS / (24 * 3600) +
6 TO_DATE('1987-08-01 00:00:00',
7 'YYYY-MM-DD HH24:MI:SS'),
8 'YYYY-MM-DD HH24:MI:SS'));
9
10 END;
11 /
输入 ts 的值: 730918324
原值 4: TS := &TS;
新值 4: TS := 730918324;
2010-09-28 16:52:04
PL/SQL 过程已成功完成。
有一个问题,为什么基数是'1987-08-01 00:00:00'?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9932141/viewspace-675045/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9932141/viewspace-675045/