jueves, 30 de septiembre de 2010

Como dar formato de moneda a un número en PostgreSql.

Para mostrar el formato deseado usaremos to_char, dicha función es muy buena para dar diferentes tipos de formatos a un valor, gracias a los patrones que se pueden aplicar.
Bueno la idea es que teniendo un número como 3456789, obtengamos $3,456,789.00

test@[local]=# select to_char(3456789,'LFM9,999,999.00') as formato;
    formato   
---------------
 $3,456,789.00
(1 fila)

Duración: 0.483 ms

El modificador L agrega el símbolo de moneda (este dependiendo de las locales configuradas).
El prefijo FM (Fill Mode) hace que se eliminen los ceros y espacios en blanco, pero no funciona si en lugar de 9 se escriben 0, por eso al final la cadena de formato termina con *.00, no con 9, de lo contrario se obtendría:

test@[local]=# select to_char(3456789,'LFM9,999,999.99') as formato;
   formato 
-------------
 $3,456,789.
(1 fila)

Duración: 0.451 ms