2011-01-05 3 views
3

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

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

отпечатки
912387000

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

ответ

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

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

+0

Спасибо, Роб, именно то, что мне нужно :) –

Смежные вопросы