Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да форматирате числа като валута в SQL Server (T-SQL)

В SQL Server можете да използвате T-SQL FORMAT() функция за форматиране на число като валута.

FORMAT() функцията ви позволява да форматирате числа, дати, валути и т.н. Тя приема три аргумента; числото, формата и незадължителен аргумент „култура“. Тази статия специално се занимава с използването на аргумента format за определяне на валута.

Пример 1 – Основна употреба

Ето пример за форматиране на число като валута:

SELECT FORMAT(1234, 'C') Result;

Резултат:

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

В този случай използвах C като втори аргумент. Това е стандартният низ с числов формат за валута.

Пример 2 – Чувствителност на малки и малки букви

Този аргумент не е чувствителен към малки и големи букви, така че или C или c връща същия резултат:

SELECT FORMAT(1234, 'c') Result;

Резултат:

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

Пример 3 – десетични знаци

Ето още един пример, този път с помощта на C0 за да уточним, че не искаме никакви десетични знаци:

SELECT FORMAT(1234, 'C0') Result;

Резултат:

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

Това се нарича „спецификация на точността“, вероятно защото ви позволява да укажете точността, с която се показва резултатът.

Можете също да увеличите броя на десетичните знаци:

SELECT FORMAT(1234, 'C4') Result;

Резултат:

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

Пример 4 – Локал

Всички предишни примери доведоха до знак за долар, поставен пред числото. Това е добре, ако желаната валута е в долари, но какво ще стане, ако трябва да я покажете в друга валута?

Можете да използвате трети аргумент, за да посочите локала. Това автоматично ще доведе до използването на съответния символ за валута за този локал:

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

Резултат:

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

Ето още няколко локали:

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

Резултат:

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

Ако културата аргументът не е посочен, използва се езикът на текущата сесия.

Ето как да намерите езика на текущата сесия и ето как да го настроите.

Имайте предвид, че текущият език обикновено ще бъде същият като езика по подразбиране на потребителя, но това може да не е така, ако потребителят е променил текущия език с помощта на SET LANGUAGE . Във всеки случай можете също да разберете какъв е езикът по подразбиране.

Както може да си представите, можете да получите доста различни резултати в зависимост от текущия ви език или стойността на всеки аргумент за „култура“. Вижте как езиковите настройки могат да повлияят на вашите FORMAT() резултати за повече примери.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ред, разделен със запетая, с клауза Group By

  2. Системни бази данни на SQL Server – Основни понятия

  3. Вмъкване на SQL Server, ако не съществува, най-добрата практика

  4. Какъв е най-добрият начин за групови вмъквания в база данни от C#?

  5. Експортиране на таблица от база данни в csv файл