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.