Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment formater des nombres en tant que devise dans SQL Server (T-SQL)

Dans SQL Server, vous pouvez utiliser le FORMAT() de T-SQL. fonction pour formater un nombre en tant que devise.

Le FORMAT() La fonction vous permet de formater des nombres, des dates, des devises, etc. Elle accepte trois arguments ; le nombre, le format et un argument « culture » facultatif. Cet article traite spécifiquement de l'utilisation de l'argument format pour spécifier une devise.

Exemple 1 - Utilisation de base

Voici un exemple de formatage d'un nombre en tant que devise :

SELECT FORMAT(1234, 'C') Result;

Résultat :

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

Dans ce cas, j'ai utilisé C comme deuxième argument. Il s'agit de la chaîne de format numérique standard pour la devise.

Exemple 2 – Sensibilité à la casse

Cet argument est insensible à la casse, donc soit C ou c renvoie le même résultat :

SELECT FORMAT(1234, 'c') Result;

Résultat :

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

Exemple 3 – Décimales

Voici un autre exemple, cette fois en utilisant C0 pour préciser qu'on ne veut pas de décimales :

SELECT FORMAT(1234, 'C0') Result;

Résultat :

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

C'est ce qu'on appelle un "spécificateur de précision", probablement parce qu'il vous permet de spécifier la précision avec laquelle le résultat est affiché.

Vous pouvez également augmenter le nombre de décimales :

SELECT FORMAT(1234, 'C4') Result;

Résultat :

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

Exemple 4 – Paramètres régionaux

Les exemples précédents ont tous abouti à un signe dollar préfixé au nombre. C'est bien si la devise souhaitée est en dollars, mais que se passe-t-il si vous devez l'afficher dans une autre devise ?

Vous pouvez utiliser un troisième argument pour spécifier les paramètres régionaux. Cela entraînera automatiquement l'utilisation du symbole monétaire approprié pour ce paramètre régional :

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

Résultat :

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

Voici d'autres paramètres régionaux :

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';

Résultat :

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

Si la culture argument n'est pas spécifié, la langue de la session en cours est utilisée.

Voici comment trouver la langue de la session en cours et comment la définir.

Notez que la langue actuelle sera généralement la même que la langue par défaut de l'utilisateur, mais cela peut ne pas être le cas si l'utilisateur a changé la langue actuelle en utilisant SET LANGUAGE . Dans tous les cas, vous pouvez également savoir quelle est la langue par défaut.

Comme vous pouvez l'imaginer, vous pourriez obtenir des résultats assez différents en fonction de votre langue actuelle ou de la valeur de tout argument de « culture ». Voir Comment les paramètres de langue peuvent affecter vos résultats FORMAT() pour plus d'exemples.