sql >> Base de Datos >  >> RDS >> PostgreSQL

Dar formato a números con comas en PostgreSQL

En PostgreSQL, podemos usar TO_CHAR() Función para formatear números en un formato dado. Esto incluye dar formato a los números con comas en la ubicación correspondiente.

PostgreSQL también tiene un money tipo de datos, que genera el valor utilizando la configuración regional actual. Esto puede incluir comas en el lugar adecuado, según la configuración regional que se utilice.

El TO_CHAR() Función

Aquí hay un ejemplo del uso de TO_CHAR() función para generar un número con comas:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultado:

123,456.78

El segundo argumento consta de un montón de patrones de plantillas numéricas que determinan cómo se formatea el primer argumento.

Aquí, usé la G patrón de plantilla para un separador de grupo consciente de la configuración regional (también denominado "separador de miles"). Podría haber usado una coma (, ), pero eso no habría tenido en cuenta la configuración regional.

También usé la D patrón de plantilla para un separador decimal compatible con la configuración regional.

En este caso, también usé fm (que significa "Modo de relleno") para suprimir cualquier ceros finales y espacios en blanco iniciales que puedan haberse aplicado automáticamente al resultado.

El 9 el patrón de la plantilla es para cada dígito. Podrías usar 0 en su lugar, si desea incluir ceros a la izquierda.

Porque la G y D los patrones de plantilla son conscientes de la configuración regional, pueden producir el carácter apropiado para el grupo y los separadores decimales.

Aquí hay un ejemplo para demostrar lo que quiero decir:

SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultado:

123,456.78

Ahora, el separador de grupo está representado por un punto/punto, y el separador decimal está representado por una coma. Esto se debe a que cambié el lc_numeric variable a utilizar fr_FR (para Francia), y es costumbre francesa tener su separador de grupo y punto decimal representado de esta manera.

Los diferentes lugares tienen diferentes convenciones para dar formato a los números y la G y D los modificadores de formato pueden determinar qué caracteres usar para los separadores de grupos y el separador decimal .

El money Tipo de datos

PostgreSQL tiene un money tipo de datos que da salida a sus valores formateados de acuerdo con la configuración regional.

Ejemplo:

SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);

Resultado:

$123,456.78

Ahora cambiemos el lc_monetary variable y vea cómo esto afecta la salida:

SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);

Resultado:

123 456,78 Eu

En este caso, el separador de grupo se representa con un espacio y el separador decimal es una coma.