In MariaDB, FORMAT()
è una funzione di stringa incorporata che formatta e restituisce il numero specificato come stringa.
Richiede due argomenti e accetta un terzo argomento facoltativo. Il primo è il numero che vuoi formattare, il secondo è la posizione decimale e il terzo (facoltativo) è la locale.
Sintassi
La sintassi è questa:
FORMAT(num, decimal_position[, locale])
Dove num
è il numero, decimal_position
è il numero di cifre decimali a cui arrotondare il numero e locale
è una lingua facoltativa da utilizzare per formattare il numero (località diverse utilizzano convenzioni diverse per la formattazione dei numeri).
Esempio
Ecco un esempio di base:
SELECT FORMAT(1234.5678, 2);
Risultato:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Qui, FORMAT()
aggiunta una virgola per un separatore di migliaia. Ha anche arrotondato il numero a due cifre decimali (perché ho specificato 2 come secondo argomento).
Rimuovi parte frazionaria
Per rimuovere la parte frazionaria (e la virgola decimale associata), usa 0
(zero) come secondo argomento:
SELECT FORMAT(1234.5678, 0);
Risultato:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Aggiunta di cifre decimali
Se il secondo argomento è un numero maggiore del numero di cifre decimali nel primo argomento, al risultato vengono aggiunti degli zeri, in modo che rifletta il numero di cifre decimali desiderato:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Risultato:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Specifica una lingua
Puoi facoltativamente passare un terzo argomento per specificare le impostazioni internazionali da utilizzare per la formattazione.
Esempio:
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";
Risultato:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Argomenti non numerici
FORMAT()
formatta solo i numeri. Fornendo una stringa, ad esempio, si ottiene 0
essere restituito. Tuttavia, è ancora formattato con la cifra decimale specificata:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Risultato:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Argomenti nulli
Fornendo null
poiché uno dei primi due argomenti risulta in null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Risultato:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Ma passando null
poiché il terzo argomento non influisce sul risultato:
SELECT FORMAT(25, 2, null);
Risultato:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Fornire un solo argomento
Fornire un singolo argomento genera un errore:
SELECT FORMAT(1234.56);
Risultato:
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
Non fornire argomenti
Chiamando FORMAT()
senza passare alcun argomento genera un errore:
SELECT FORMAT();
Risultato:
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