PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So ändern Sie das Gebietsschema beim Formatieren von Zahlen in PostgreSQL

Wenn Sie eine Zahl in PostgreSQL formatieren und das Gebietsschema so ändern möchten, dass die richtigen Gruppen- und Dezimaltrennzeichen verwendet werden, gehen Sie wie folgt vor.

Es gibt zwei interessante Systemvariablen:

lc_monetary Legt das Gebietsschema fest, das zum Formatieren von Geldbeträgen verwendet werden soll.
lc_numeric Legt das Gebietsschema fest, das zum Formatieren von Zahlen verwendet werden soll.

Diese können mit dem SET gesetzt werden Aussage.

Zum Beispiel:

SET lc_numeric = 'en_US';

Ergebnis:

SET

Wenn das eingestellt ist, funktioniert es wie TO_CHAR() formatiert Zahlen gemäß en_US formatieren.

Beispiele

Hier sind einige Beispiele, die zeigen, wie diese Variablen die Ausgabe beeinflussen können:

Der lc_monetary Variable

Hier ist ein Beispiel für die Einstellung von lc_monetary Variable:

SET lc_monetary = 'en_US';
SELECT CAST(123456.789 AS money);

Ergebnis:

$123,456.79

Und hier verwendet es ein anderes Gebietsschema:

SET lc_monetary = 'de_DE';
SELECT CAST(123456.789 AS money);

Ergebnis:

Eu123.456,79

Der lc_numeric Variable

Hier ist ein Beispiel für die Einstellung von lc_numeric Variable, dann Formatieren einer Zahl mit TO_CHAR() Funktion:

SET lc_numeric = 'en_US';
SELECT TO_CHAR(123456.789, 'fm999G999D99');

Ergebnis:

123,456.79

Und hier verwendet es ein anderes Gebietsschema:

SET lc_numeric = 'de_DE';
SELECT TO_CHAR(123456.789, 'fm999G999D99');

Ergebnis:

123,456.79

Überprüfen Sie die aktuellen Einstellungen

Sie können Ihre aktuellen Einstellungen mit SHOW überprüfen Befehl.

Beispiel:

SHOW lc_monetary;

Ergebnis:

en_US

Und:

SHOW lc_numeric;

Ergebnis:

de_DE

Zurücksetzen auf die Standardwerte

Sie können Folgendes verwenden, um jede Variable auf ihre Standardeinstellung zurückzusetzen:

SET lc_monetary TO DEFAULT;
SHOW lc_monetary;

Ergebnis:

en_US.UTF-8

Und für lc_numeric :

SET lc_numeric TO DEFAULT;
SHOW lc_numeric;

Ergebnis:

en_US.UTF-8

Die auf Ihrem System verfügbaren Gebietsschemas und ihre Namen hängen davon ab, was vom Betriebssystemanbieter bereitgestellt und installiert wurde. Weitere Informationen finden Sie in der PostgreSQL-Dokumentation zur Gebietsschemaunterstützung.