В 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() резултати за повече примери.