V MariaDB, FORMAT()
je vestavěná řetězcová funkce, která formátuje a vrací dané číslo jako řetězec.
Vyžaduje dva argumenty a přijímá volitelný třetí argument. První je číslo, které chcete formátovat, druhé je desetinná pozice a (volitelné) třetí je národní prostředí.
Syntaxe
Syntaxe vypadá takto:
FORMAT(num, decimal_position[, locale])
Kde num
je číslo, decimal_position
je počet desetinných míst, na který se má číslo zaokrouhlit, a locale
je volitelné národní prostředí pro formátování čísla (různá národní prostředí používají různé konvence pro formátování čísel).
Příklad
Zde je základní příklad:
SELECT FORMAT(1234.5678, 2);
Výsledek:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Zde FORMAT()
přidal čárku pro oddělovač tisíců. Také to zaokrouhlilo číslo na dvě desetinná místa (protože jsem jako druhý argument uvedl 2).
Odstranit zlomkovou část
Chcete-li odstranit zlomkovou část (a související desetinnou čárku), použijte 0
(nula) jako druhý argument:
SELECT FORMAT(1234.5678, 0);
Výsledek:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Přidání desetinných míst
Pokud je druhý argument vyšší číslo než počet desetinných míst v prvním argumentu, k výsledku se přidají nuly, aby odrážel požadovaný počet desetinných míst:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Výsledek:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Určete národní prostředí
Volitelně můžete předat třetí argument pro určení národního prostředí, které se má použít pro formátování.
Příklad:
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";
Výsledek:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Nečíselné argumenty
FORMAT()
pouze formátuje čísla. Pokud například zadáte řetězec, výsledkem bude 0
vracení. Stále je však formátován na zadané desetinné místo:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Výsledek:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Nulové argumenty
Poskytování null
protože jeden z prvních dvou argumentů má za následek null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Výsledek:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Ale předání null
jako třetí argument nemá vliv na výsledek:
SELECT FORMAT(25, 2, null);
Výsledek:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Poskytování pouze jednoho argumentu
Poskytnutí jediného argumentu má za následek chybu:
SELECT FORMAT(1234.56);
Výsledek:
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
Neposkytování argumentů
Volání FORMAT()
bez předání jakýchkoli argumentů dojde k chybě:
SELECT FORMAT();
Výsledek:
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