I MariaDB, FORMAT()
är en inbyggd strängfunktion som formaterar och returnerar det givna numret som en sträng.
Den kräver två argument och accepterar ett valfritt tredje argument. Den första är talet du vill formatera, den andra är decimalpositionen och den (valfria) tredje är språket.
Syntax
Syntaxen ser ut så här:
FORMAT(num, decimal_position[, locale])
Där num
är talet, decimal_position
är antalet decimaler att avrunda talet till och locale
är ett valfritt språk att använda för att formatera numret (olika lokaler använder olika konventioner för att formatera siffror).
Exempel
Här är ett grundläggande exempel:
SELECT FORMAT(1234.5678, 2);
Resultat:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Här, FORMAT()
lagt till ett kommatecken för tusentalsavgränsare. Det avrundade också talet till två decimaler (eftersom jag angav 2 som det andra argumentet).
Ta bort bråkdel
För att ta bort bråkdelen (och dess tillhörande decimalkomma), använd 0
(noll) som det andra argumentet:
SELECT FORMAT(1234.5678, 0);
Resultat:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Lägga till decimaler
Om det andra argumentet är ett högre antal än antalet decimaler i det första argumentet läggs nollor till i resultatet, så att det återspeglar det önskade antalet decimaler:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Resultat:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Ange ett språk
Du kan valfritt skicka ett tredje argument för att ange lokalen som ska användas för formateringen.
Exempel:
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";
Resultat:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Icke-numeriska argument
FORMAT()
formaterar bara siffror. Att tillhandahålla en sträng resulterar till exempel i 0
återlämnas. Den är dock fortfarande formaterad till den angivna decimalen:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Resultat:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Nollargument
Tillhandahåller null
eftersom något av de två första argumenten resulterar i null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Resultat:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Men skickar null
eftersom det tredje argumentet inte påverkar resultatet:
SELECT FORMAT(25, 2, null);
Resultat:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Ge bara ett argument
Att tillhandahålla ett enda argument resulterar i ett fel:
SELECT FORMAT(1234.56);
Resultat:
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
Inga argument
Anropar FORMAT()
utan att skicka några argument resulterar i ett fel:
SELECT FORMAT();
Resultat:
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