格式化时间戳具有恒定精度

时间:2011-01-05 08:49:42

标签: sql oracle plsql timestamp

我正在尝试使用小数部分的6位来格式化TIMESTAMP'FF'似乎打印了所有可用的数字,即使我明确声明了TIMESTAMP(6)

DECLARE
  t  TIMESTAMP(6);
BEGIN
  t := SYSTIMESTAMP;
  dbms_output.put_line( TO_CHAR(t, 'FF') );
END;

打印
912387000

有没有办法获得 912387
相反(不使用SUBSTRING或类似的东西)?

1 个答案:

答案 0 :(得分:4)

是的,可以使用'FF6':

SQL> DECLARE
  2     t  TIMESTAMP(6);
  3  BEGIN
  4     t := SYSTIMESTAMP;
  5     dbms_output.put_line( TO_CHAR(t, 'FF') );
  6     dbms_output.put_line( TO_CHAR(t, 'FF6') );
  7  END;
  8  /
234771000
234771

PL/SQL procedure successfully completed.

以下是文档的链接:http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements004.htm#r16c1-t64

此致 罗布。