SQL Academy
Premium
Funktionsreferenz

FORMAT

Rundet eine Zahl und formatiert sie als String mit Tausendertrennzeichen.

MySQL 8.1
FORMAT(num, decimals[, locale])

Parameter

numDECIMAL
Zu formatierende Zahl
decimalsINT
Anzahl der Nachkommastellen, eine negative zählt als 0
localeVARCHARoptional
Regeln für die Schreibweise, zum Beispiel de_DE oder ru_RU, standardmäßig en_US

Rückgabewert

String wie 1,234,567.89; NULL, wenn num NULL ist

Beispiele

Tausendertrennzeichen

MySQL 8.1
SELECT FORMAT(1234567.891, 2) AS formatted;
formatted
1,234,567.89

Deutsche und russische Schreibweise

MySQL 8.1
SELECT FORMAT(1234567.891, 2, 'de_DE') AS de,
	FORMAT(1234567.891, 2, 'ru_RU') AS ru;
deru
1.234.567,891 234 567,89

Ausgaben je Familienmitglied

MySQL 8.1
SELECT family_member,
	FORMAT(SUM(amount * unit_price), 0) AS spent
FROM Payments
GROUP BY family_member
ORDER BY SUM(amount * unit_price) DESC;
family_memberspent
274,644
112,504
33,659
51,076
4650

Details

Das Ergebnis ist ein String, daher kannst du danach nicht wie nach einer Zahl sortieren oder vergleichen: '9,000' ist dann größer als '10,000'. Sortiere nach dem Ausgangsausdruck und verwende FORMAT nur für die Ausgabe. Bei .5 wird von null weg gerundet, wie bei ROUND.

Siehe auch