В MariaDB, FORMAT()
е вградена функция за низ, която форматира и връща даденото число като низ.
Той изисква два аргумента и приема незадължителен трети аргумент. Първият е числото, което искате да форматирате, вторият е десетичната позиция, а третият (по избор) е локалът.
Синтаксис
Синтаксисът е така:
FORMAT(num, decimal_position[, locale])
Където num
е числото, decimal_position
е броят на десетичните знаци, до които да се закръгли числото и locale
е незадължителен локал, който да се използва за форматиране на числото (различните локали използват различни конвенции за форматиране на числа).
Пример
Ето един основен пример:
SELECT FORMAT(1234.5678, 2);
Резултат:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Тук FORMAT()
добави запетая за разделител на хиляди. Освен това закръгли числото до два знака след десетичната запетая (защото посочих 2 като втори аргумент).
Премахване на дробна част
За да премахнете дробната част (и свързаната с нея десетична запетая), използвайте 0
(нула) като втори аргумент:
SELECT FORMAT(1234.5678, 0);
Резултат:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Добавяне на десетични знаци
Ако вторият аргумент е по-голямо число от броя на десетичните знаци в първия аргумент, към резултата се добавят нули, така че да отразява желания брой десетични знаци:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Резултат:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Посочете локал
Можете по избор да подадете трети аргумент, за да посочите локала, който да използвате за форматирането.
Пример:
SELECT
FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";
Резултат:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Нечислови аргументи
FORMAT()
форматира само числа. Предоставянето на низ, например, води до 0
се връща. Въпреки това, той все още е форматиран до посочения десетичен знак:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Резултат:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Нулеви аргументи
Предоставяне на null
тъй като всеки от първите два аргумента води до null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Резултат:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Но подаване на null
тъй като третият аргумент не влияе на резултата:
SELECT FORMAT(25, 2, null);
Резултат:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Предоставяне само на един аргумент
Предоставянето на един аргумент води до грешка:
SELECT FORMAT(1234.56);
Резултат:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Без аргументи
Извикване на FORMAT()
без подаване на аргументи води до грешка:
SELECT FORMAT();
Резултат:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1