to_varchar - to_date oracle ejemplos
¿Por qué la función to_char() de Oracle agrega espacios? (4)
El espacio extra adicional es para el signo menos potencial. Para eliminar el espacio, puede usar FM en el formato:
SQL> select to_char(12,''FM000'') from dual;
TO_C
----
012
Por cierto, tenga en cuenta que to_char toma un argumento NUMBER; to_char (''012'') se convierte implícitamente en to_char (to_number (''012'')) = to_char (12)
¿Por qué la función to_char()
Oracle agrega espacios?
select length(''012''),
length(to_char(''012'')),
length(to_char(''12'', ''000''))
from dual;
3, 3, 4
La máscara de formato que está utilizando es de ancho fijo y permite un signo menos
Para que las respuestas sean más claras:
select ''[''||to_char(12, ''000'')||'']'',
''[''||to_char(-12, ''000'')||'']'',
''[''||to_char(12,''FM000'')||'']''
from dual
[ 012] [-012] [012]
Tenga en cuenta que al usar la sintaxis ''fm'' no incluirá ningún valor después del lugar decimal a menos que se especifique usando ceros. Por ejemplo:
SELECT TO_CHAR(12345, ''fm99,999.00'') FROM dual
vuelve: ''12, 345.00 ''
SELECT TO_CHAR(12345, ''fm99,999.99'') FROM dual
vuelve: ''12, 345. ''
Como puede ver, esto sería un problema si espera dos ceros después de los decimales (tal vez en los informes de tarifas, por ejemplo).