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.