Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak formatować liczby jako walutę w SQL Server (T-SQL)

W SQL Server możesz użyć funkcji T-SQL FORMAT() funkcja formatowania liczby jako waluty.

FORMAT() funkcja pozwala na formatowanie liczb, dat, walut itp. Przyjmuje trzy argumenty; liczba, format i opcjonalny argument „kultura”. Ten artykuł dotyczy w szczególności używania argumentu format do określenia waluty.

Przykład 1 – Podstawowe użycie

Oto przykład formatowania liczby jako waluty:

SELECT FORMAT(1234, 'C') Result;

Wynik:

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

W tym przypadku użyłem C jako drugi argument. Jest to standardowy ciąg formatu liczbowego Waluta.

Przykład 2 – Rozróżnianie wielkości liter

W tym argumencie nie jest rozróżniana wielkość liter, więc albo C lub c zwraca ten sam wynik:

SELECT FORMAT(1234, 'c') Result;

Wynik:

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

Przykład 3 – Miejsca dziesiętne

Oto kolejny przykład, tym razem przy użyciu C0 aby określić, że nie chcemy żadnych miejsc dziesiętnych:

SELECT FORMAT(1234, 'C0') Result;

Wynik:

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

Nazywa się to „specyfikatorem precyzji”, prawdopodobnie dlatego, że pozwala określić precyzję, z jaką wyświetlany jest wynik.

Możesz także zwiększyć liczbę miejsc po przecinku:

SELECT FORMAT(1234, 'C4') Result;

Wynik:

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

Przykład 4 – Lokalizacja

We wszystkich poprzednich przykładach liczba była poprzedzona znakiem dolara. Jest to w porządku, jeśli żądana waluta jest w dolarach, ale co, jeśli musisz wyświetlić ją w innej walucie?

Możesz użyć trzeciego argumentu, aby określić ustawienia regionalne. Spowoduje to automatycznie użycie odpowiedniego symbolu waluty dla tej lokalizacji:

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

Wynik:

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

Oto kilka innych lokalizacji:

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

Wynik:

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

Jeśli kultura argument nie jest określony, używany jest język bieżącej sesji.

Oto jak znaleźć język bieżącej sesji i jak go ustawić.

Pamiętaj, że bieżący język będzie zwykle taki sam, jak domyślny język użytkownika, ale może to nie mieć miejsca, jeśli użytkownik zmienił bieżący język za pomocą SET LANGUAGE . W każdym razie możesz również dowiedzieć się, jaki jest język domyślny.

Jak możesz sobie wyobrazić, możesz uzyskać całkiem różne wyniki w zależności od twojego języka lub wartości jakiegokolwiek argumentu „kulturowego”. Zobacz, jak ustawienia języka mogą wpłynąć na wyniki FORMAT(), aby uzyskać więcej przykładów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt do zabijania wszystkich połączeń z bazą danych (więcej niż RESTRICTED_USER ROLLBACK)

  2. Używanie SQL Server jako magazynu obrazów

  3. Osiągnięcie limitu parametrów 2100 (SQL Server) podczas korzystania z Contains()

  4. Konwertuj float na varchar w SQL Server bez notacji naukowej

  5. Bazy danych systemu SQL Server — konserwacja Tempdb