V SQL Server můžete použít T-SQL FORMAT()
funkce pro formátování čísla jako měny.
FORMAT()
funkce umožňuje formátovat čísla, data, měny atd. Přijímá tři argumenty; číslo, formát a volitelný argument „kultura“. Tento článek se konkrétně zabývá použitím argumentu formátu k určení měny.
Příklad 1 – Základní použití
Zde je příklad formátování čísla jako měny:
SELECT FORMAT(1234, 'C') Result;
Výsledek:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
V tomto případě jsem použil C
jako druhý argument. Toto je standardní řetězec číselného formátu pro měnu.
Příklad 2 – Rozlišování malých a velkých písmen
Tento argument nerozlišuje velká a malá písmena, takže buď C
nebo c
vrátí stejný výsledek:
SELECT FORMAT(1234, 'c') Result;
Výsledek:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
Příklad 3 – desetinná místa
Zde je další příklad, tentokrát s použitím C0
k určení, že nechceme žádná desetinná místa:
SELECT FORMAT(1234, 'C0') Result;
Výsledek:
+----------+ | Result | |----------| | $1,234 | +----------+
Toto se nazývá „specifikátor přesnosti“, pravděpodobně proto, že vám umožňuje určit přesnost, s jakou se zobrazí výsledek.
Můžete také zvýšit počet desetinných míst:
SELECT FORMAT(1234, 'C4') Result;
Výsledek:
+-------------+ | Result | |-------------| | $1,234.0000 | +-------------+
Příklad 4 – Národní prostředí
Všechny předchozí příklady vedly k tomu, že před číslem byl znak dolaru. To je v pořádku, pokud je požadovaná měna v dolarech, ale co když ji potřebujete zobrazit v jiné měně?
K určení národního prostředí můžete použít třetí argument. To automaticky povede k použití příslušného symbolu měny pro dané národní prostředí:
SELECT FORMAT(1234, 'C', 'fr-FR') Result;
Výsledek:
+------------+ | Result | |------------| | 1 234,00 € | +------------+
Zde jsou některé další lokality:
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';
Výsledek:
+------------+-----------+------------+------------+ | France | China | Thailand | Germany | |------------+-----------+------------+------------| | 1 234,00 € | ¥1,234.00 | ฿1,234.00 | 1.234,00 € | +------------+-----------+------------+------------+
Pokud kultura argument není zadán, použije se jazyk aktuální relace.
Zde je návod, jak najít jazyk aktuální relace a zde je návod, jak jej nastavit.
Upozorňujeme, že aktuální jazyk bude obvykle stejný jako výchozí jazyk uživatele, ale nemusí tomu tak být, pokud uživatel změnil aktuální jazyk pomocí SET LANGUAGE
. V každém případě můžete také zjistit, jaký je výchozí jazyk.
Jak si dokážete představit, můžete získat zcela odlišné výsledky v závislosti na vašem aktuálním jazyce nebo hodnotě jakéhokoli argumentu „kultury“. Další příklady naleznete v části Jak může jazyková nastavení ovlivnit výsledky FORMAT().