Формат отметки времени с постоянной точностью - PullRequest
3 голосов
/ 05 января 2011

Я пытаюсь отформатировать TIMESTAMP с 6 цифрами дробной части.'FF', кажется, печатает все доступные цифры, даже если я явно объявляю TIMESTAMP(6):

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

отпечатки
912387000

Есть ли способ получить
912387
вместо (без использования SUBSTRING или чего-то подобного)?

1 Ответ

4 голосов
/ 05 января 2011

Да, это возможно, используя '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

С уважением, Роб.

...