sql >> Databáze >  >> RDS >> Sqlserver

Jak formátovat čísla jako měnu v SQL Server (T-SQL)

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().


  1. PostgreSQL - deaktivace omezení

  2. Doporučené postupy mysqldump:Část 1 – Předpoklady pro MySQL

  3. Nejlepší typ pole databáze pro adresu URL

  4. Jak najít závislosti cizího klíče na SQL Server?