In PostgreSQL können wir den TO_CHAR()
verwenden Funktion zum Formatieren von Zahlen in einem bestimmten Format. Dazu gehört das Formatieren von Zahlen mit Kommas an der entsprechenden Stelle.
PostgreSQL hat auch ein money
Datentyp, der den Wert unter Verwendung des aktuellen Gebietsschemas ausgibt. Dies kann je nach verwendetem Gebietsschema Kommas an der entsprechenden Stelle enthalten.
Der TO_CHAR()
Funktion
Hier ist ein Beispiel für die Verwendung von TO_CHAR()
Funktion zur Ausgabe einer Zahl mit Kommas:
SELECT TO_CHAR(123456.78, 'fm999G999D99');
Ergebnis:
123,456.78
Das zweite Argument besteht aus einer Reihe numerischer Vorlagenmuster, die bestimmen, wie das erste Argument formatiert wird.
Hier habe ich das G
verwendet Vorlagenmuster für ein gebietsschemaabhängiges Gruppentrennzeichen (auch als „Tausendertrennzeichen“ bezeichnet). Ich hätte ein Komma verwenden können (,
), aber das wäre nicht gebietsschemaabhängig gewesen.
Ich habe auch das D
verwendet Vorlagenmuster für ein länderspezifisches Dezimaltrennzeichen.
In diesem Fall habe ich auch fm
verwendet (was für „Fill Mode“ steht), um alle nachgestellten Nullen und führenden Leerzeichen zu unterdrücken, die möglicherweise automatisch auf das Ergebnis angewendet wurden.
Die 9
Schablonenmuster ist für jede Ziffer. Sie könnten 0
verwenden stattdessen, wenn Sie führende Nullen einfügen möchten.
Da das G
und D
Vorlagenmuster sind ortsabhängig, sie sind in der Lage, das entsprechende Zeichen für die Gruppe und Dezimaltrennzeichen zu erzeugen.
Hier ist ein Beispiel, um zu demonstrieren, was ich meine:
SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');
Ergebnis:
123,456.78
Jetzt wird das Gruppentrennzeichen durch einen Punkt/Punkt dargestellt, und das Dezimaltrennzeichen wird durch ein Komma dargestellt. Das liegt daran, dass ich den lc_numeric
geändert habe Variable zur Verwendung von fr_FR
(für Frankreich), und es ist französischer Brauch, das Gruppentrennzeichen und den Dezimalpunkt auf diese Weise darzustellen.
Unterschiedliche Gebietsschemas haben unterschiedliche Konventionen für die Formatierung von Zahlen und das G
und D
Formatmodifikatoren können bestimmen, welche Zeichen für Gruppentrennzeichen und das dezimale Trennzeichen.
Das money
Datentyp
PostgreSQL hat ein money
Datentyp, der seine Werte ortsabhängig formatiert ausgibt.
Beispiel:
SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);
Ergebnis:
$123,456.78
Jetzt ändern wir den lc_monetary
Variable und sehen Sie, wie sich dies auf die Ausgabe auswirkt:
SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);
Ergebnis:
123 456,78 Eu
In diesem Fall wird das Gruppentrennzeichen durch ein Leerzeichen dargestellt und das dezimale Trennzeichen ist ein Komma.