sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo dar formato a números como moneda en SQL Server (T-SQL)

En SQL Server, puede usar T-SQL FORMAT() función para dar formato a un número como una moneda.

El FORMAT() La función le permite formatear números, fechas, monedas, etc. Acepta tres argumentos; el número, el formato y un argumento de "cultura" opcional. Este artículo trata específicamente sobre el uso del argumento de formato para especificar una moneda.

Ejemplo 1:uso básico

Este es un ejemplo de formato de un número como moneda:

SELECT FORMAT(1234, 'C') Result;

Resultado:

+-----------+
| Result    |
|-----------|
| $1,234.00 |
+-----------+

En este caso, usé C como segundo argumento. Esta es la cadena de formato numérico estándar para Moneda.

Ejemplo 2:Sensibilidad entre mayúsculas y minúsculas

Este argumento no distingue entre mayúsculas y minúsculas, por lo que C o c devuelve el mismo resultado:

SELECT FORMAT(1234, 'c') Result;

Resultado:

+-----------+
| Result    |
|-----------|
| $1,234.00 |
+-----------+

Ejemplo 3 – Lugares decimales

Aquí hay otro ejemplo, esta vez usando C0 para especificar que no queremos lugares decimales:

SELECT FORMAT(1234, 'C0') Result;

Resultado:

+----------+
| Result   |
|----------|
| $1,234   |
+----------+

Esto se denomina "especificador de precisión", probablemente porque le permite especificar la precisión con la que se muestra el resultado.

También puede aumentar el número de lugares decimales:

SELECT FORMAT(1234, 'C4') Result;

Resultado:

+-------------+
| Result      |
|-------------|
| $1,234.0000 |
+-------------+

Ejemplo 4:configuración regional

Todos los ejemplos anteriores resultaron en un signo de dólar como prefijo al número. Esto está bien si la moneda deseada está en dólares, pero ¿qué sucede si necesita mostrarla en una moneda diferente?

Puede utilizar un tercer argumento para especificar la configuración regional. Esto hará que se utilice automáticamente el símbolo de moneda apropiado para esa configuración regional:

SELECT FORMAT(1234, 'C', 'fr-FR') Result;

Resultado:

+------------+
| Result     |
|------------|
| 1 234,00 € |
+------------+

Aquí hay algunas configuraciones regionales más:

SELECT 
  FORMAT(1234, 'C', 'fr-FR') 'France',
  FORMAT(1234, 'C', 'zh-cn') 'China',
  FORMAT(1234, 'C', 'th-TH') 'Thailand',
  FORMAT(1234, 'C', 'de-DE') 'Germany';

Resultado:

+------------+-----------+------------+------------+
| France     | China     | Thailand   | Germany    |
|------------+-----------+------------+------------|
| 1 234,00 € | ¥1,234.00 | ฿1,234.00  | 1.234,00 € |
+------------+-----------+------------+------------+

Si la cultura no se especifica el argumento, se usa el idioma de la sesión actual.

Aquí se explica cómo encontrar el idioma de la sesión actual y cómo configurarlo.

Tenga en cuenta que el idioma actual generalmente será el mismo que el idioma predeterminado del usuario, pero este podría no ser el caso si el usuario ha cambiado el idioma actual usando SET LANGUAGE . En cualquier caso, también puedes averiguar cuál es el idioma predeterminado.

Como puede imaginar, podría obtener resultados bastante diferentes según su idioma actual o el valor de cualquier argumento de "cultura". Consulte Cómo la configuración de idioma puede afectar los resultados de FORMAT() para obtener más ejemplos.