sql >> Database >  >> RDS >> PostgreSQL

De landinstelling wijzigen bij het formatteren van getallen in PostgreSQL

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.


  1. MySQL Server is verdwenen bij het importeren van een groot sql-bestand

  2. Cloudmigratie 101:verhuizen van SQL Server naar Azure

  3. Bestaande auth.User-gegevens migreren naar het nieuwe aangepaste gebruikersmodel van Django 1.5?

  4. Hoe de huidige waarde van een orakelreeks op te halen zonder deze te verhogen?