Справочник по функциям

FORMAT

Округляет число и форматирует его как строку с разделителями разрядов.

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

Параметры

numDECIMAL
Форматируемое число
decimalsINT
Количество знаков после запятой, отрицательное считается 0
localeVARCHARнеобязательный
Языковые правила записи, например de_DE или ru_RU, по умолчанию en_US

Возвращаемое значение

Строка вида 1,234,567.89; NULL, если num равно NULL

Примеры

Разделители разрядов

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

Немецкая и русская запись

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

Траты каждого члена семьи

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

Подробности

Результат — строка, поэтому сортировать и сравнивать по нему как по числу нельзя: '9,000' окажется больше '10,000'. Сортируйте по исходному выражению, а FORMAT используйте только для вывода. Половина округляется от нуля, как у ROUND.

Смотрите также