Jeśli formatujesz liczbę w PostgreSQL i chcesz zmienić ustawienia regionalne, aby używane były prawidłowe separatory grup i dziesiętne, oto jak możesz to zrobić.
Istnieją dwie interesujące zmienne systemowe:
lc_monetary | Ustawia ustawienia regionalne używane do formatowania kwot pieniężnych. |
lc_numeric | Ustawia ustawienia regionalne używane do formatowania liczb. |
Można je ustawić za pomocą SET oświadczenie.
Na przykład:
SET lc_numeric = 'en_US'; Wynik:
SET
Po ustawieniu tego, funkcje takie jak TO_CHAR() sformatuje liczby zgodnie z en_US format.
Przykłady
Oto kilka przykładów pokazujących, jak te zmienne mogą wpływać na dane wyjściowe:
lc_monetary Zmienna
Oto przykład ustawienia lc_monetary zmienna:
SET lc_monetary = 'en_US';
SELECT CAST(123456.789 AS money); Wynik:
$123,456.79
A tutaj używa innego języka:
SET lc_monetary = 'de_DE';
SELECT CAST(123456.789 AS money); Wynik:
Eu123.456,79
lc_numeric Zmienna
Oto przykład ustawienia lc_numeric zmienna, a następnie formatowanie liczby za pomocą TO_CHAR() funkcja:
SET lc_numeric = 'en_US';
SELECT TO_CHAR(123456.789, 'fm999G999D99'); Wynik:
123,456.79
A tutaj używa innego języka:
SET lc_numeric = 'de_DE';
SELECT TO_CHAR(123456.789, 'fm999G999D99'); Wynik:
123.456,79
Sprawdź bieżące ustawienia
Możesz sprawdzić swoje bieżące ustawienia za pomocą SHOW polecenie.
Przykład:
SHOW lc_monetary; Wynik:
en_US
Oraz:
SHOW lc_numeric; Wynik:
de_DE
Przywróć wartości domyślne
Aby przywrócić ustawienia domyślne każdej zmiennej, możesz użyć następujących poleceń:
SET lc_monetary TO DEFAULT;
SHOW lc_monetary; Wynik:
en_US.UTF-8
Oraz dla lc_numeric :
SET lc_numeric TO DEFAULT;
SHOW lc_numeric; Wynik:
en_US.UTF-8
Lokalizacje dostępne w systemie i ich nazwy zależą od tego, co zostało dostarczone przez dostawcę systemu operacyjnego i co zostało zainstalowane. Więcej informacji można znaleźć w dokumentacji PostgreSQL na temat obsługi lokalizacji.