Als u een getal opmaakt in PostgreSQL en u wilt de landinstelling wijzigen zodat de juiste groep en decimale scheidingstekens worden gebruikt, kunt u dat als volgt doen.
Er zijn twee interessante systeemvariabelen:
lc_monetary | Stelt de landinstelling in die moet worden gebruikt voor het opmaken van geldbedragen. |
lc_numeric | Stelt de landinstelling in die moet worden gebruikt voor het opmaken van getallen. |
Deze kunnen worden ingesteld met de SET
verklaring.
Bijvoorbeeld:
SET lc_numeric = 'en_US';
Resultaat:
SET
Als dat is ingesteld, werken functies als TO_CHAR()
formatteert getallen volgens de en_US
formaat.
Voorbeelden
Hier zijn enkele voorbeelden die laten zien hoe deze variabele de uitvoer kan beïnvloeden:
De lc_monetary
Variabele
Hier is een voorbeeld van het instellen van de lc_monetary
variabele:
SET lc_monetary = 'en_US';
SELECT CAST(123456.789 AS money);
Resultaat:
$123,456.79
En hier gebruikt het een andere landinstelling:
SET lc_monetary = 'de_DE';
SELECT CAST(123456.789 AS money);
Resultaat:
Eu123.456,79
De lc_numeric
Variabele
Hier is een voorbeeld van het instellen van de lc_numeric
variabele, en vervolgens een getal opmaken met de TO_CHAR()
functie:
SET lc_numeric = 'en_US';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Resultaat:
123,456.79
En hier gebruikt het een andere landinstelling:
SET lc_numeric = 'de_DE';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Resultaat:
123,456.79
Controleer de huidige instellingen
U kunt uw huidige instellingen controleren met de SHOW
commando.
Voorbeeld:
SHOW lc_monetary;
Resultaat:
en_US
En:
SHOW lc_numeric;
Resultaat:
de_DE
Terugzetten naar de standaardwaarden
U kunt het volgende gebruiken om elke variabele terug te zetten naar de standaardinstelling:
SET lc_monetary TO DEFAULT;
SHOW lc_monetary;
Resultaat:
en_US.UTF-8
En voor lc_numeric
:
SET lc_numeric TO DEFAULT;
SHOW lc_numeric;
Resultaat:
en_US.UTF-8
De landinstellingen die beschikbaar zijn op uw systeem en hun namen zijn afhankelijk van wat is geleverd door de leverancier van het besturingssysteem en wat is geïnstalleerd. Zie de documentatie van PostgreSQL over lokale ondersteuning voor meer informatie.