Pokud formátujete číslo v PostgreSQL a chcete změnit národní prostředí tak, aby byly použity správné oddělovače skupiny a desetinných míst, můžete to udělat následovně.
Zajímavé jsou dvě systémové proměnné:
lc_monetary | Nastaví národní prostředí pro formátování peněžních částek. |
lc_numeric | Nastaví národní prostředí pro formátování čísel. |
Ty lze nastavit pomocí SET
prohlášení.
Například:
SET lc_numeric = 'en_US';
Výsledek:
SET
Po nastavení funkce jako TO_CHAR()
bude formátovat čísla podle en_US
formát.
Příklady
Zde je několik příkladů, které demonstrují, jak tyto proměnné mohou ovlivnit výstup:
lc_monetary
Proměnná
Zde je příklad nastavení lc_monetary
proměnná:
SET lc_monetary = 'en_US';
SELECT CAST(123456.789 AS money);
Výsledek:
$123,456.79
A zde používá jiné národní prostředí:
SET lc_monetary = 'de_DE';
SELECT CAST(123456.789 AS money);
Výsledek:
Eu123.456,79
lc_numeric
Proměnná
Zde je příklad nastavení lc_numeric
proměnnou a poté naformátujte číslo pomocí TO_CHAR()
funkce:
SET lc_numeric = 'en_US';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Výsledek:
123,456.79
A zde používá jiné národní prostředí:
SET lc_numeric = 'de_DE';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Výsledek:
123,456.79
Zkontrolujte aktuální nastavení
Aktuální nastavení můžete zkontrolovat pomocí SHOW
příkaz.
Příklad:
SHOW lc_monetary;
Výsledek:
en_US
A:
SHOW lc_numeric;
Výsledek:
de_DE
Resetovat zpět na výchozí hodnoty
K nastavení každé proměnné zpět na její výchozí nastavení můžete použít následující:
SET lc_monetary TO DEFAULT;
SHOW lc_monetary;
Výsledek:
en_US.UTF-8
A pro lc_numeric
:
SET lc_numeric TO DEFAULT;
SHOW lc_numeric;
Výsledek:
en_US.UTF-8
Lokality dostupné ve vašem systému a jejich názvy závisí na tom, co bylo poskytnuto dodavatelem operačního systému a co bylo nainstalováno. Další informace najdete v dokumentaci PostgreSQL o podpoře národního prostředí.