Se você quiser o valor até milésimos, mas não mais da parte decimal, então você pode multiplicar por 1000 e
FLOOR
ou use TRUNC
. Assim:SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM table_name;
ou:
SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM table_name;
Usando
TO_CHAR
só irápermitir um número máximo de dígitos com base na máscara de formato (se o valor ultrapassar este tamanho então irámostrar #
s em vez de números), mas lidará com números negativos (colocando o sinal de menos antes dos zeros à esquerda). Usando
LPAD
permitirá qualquer tamanho de entrada, mas se a entrada for negativa, o sinal de menos estará no meio da string (após qualquer zero à esquerda).