Ce face FORMAT()
FORMAT() rotunjește numărul la numărul de zecimale cerut și adaugă separatorul de mii. Implicit folosește formatul englez (1,234.50).
Cu al treilea parametru alegi limba: 'ro_RO' dă formatul românesc, cu punct pentru mii și virgulă pentru zecimale.
Parametri
| Parametru | Descriere |
|---|---|
numar |
Numărul formatat. |
zecimale |
Câte zecimale să afișeze. |
locale |
Opțional. Limba formatului, ex. 'ro_RO', 'en_US'. |
Ce returnează
Un text cu numărul formatat.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
cod VARCHAR(20),
nume VARCHAR(50),
pret DECIMAL(10,2),
etichete VARCHAR(100)
);
INSERT INTO produse VALUES
(1, 'LAP-2026-01', 'Laptop ultraportabil', 3499.90, 'electronice,birou,promo'),
(2, 'MOU-2025-07', 'Mouse fără fir', 79.50, 'electronice,accesorii'),
(3, 'SCA-2026-03', 'Scaun ergonomic', 1249.00, 'mobilier,birou'),
(4, 'CAB-2024-11', 'Cablu USB-C', 35.00, 'accesorii,promo');
Exemplul 1: Format englez și românesc
SELECT FORMAT(1234567.891, 2) AS implicit,
FORMAT(1234567.891, 2, 'ro_RO') AS romanesc,
FORMAT(1234567.891, 0) AS fara_zecimale;
Rezultat
+--------------+--------------+---------------+
| implicit | romanesc | fara_zecimale |
+--------------+--------------+---------------+
| 1,234,567.89 | 1.234.567,89 | 1,234,568 |
+--------------+--------------+---------------+
Exemplul 2: Prețuri gata de afișat
SELECT nume, CONCAT(FORMAT(pret, 2, 'ro_RO'), ' lei') AS pret_afisat
FROM produse
ORDER BY pret DESC;
Rezultat
+----------------------+--------------+
| nume | pret_afisat |
+----------------------+--------------+
| Laptop ultraportabil | 3.499,90 lei |
| Scaun ergonomic | 1.249,00 lei |
| Mouse fără fir | 79,50 lei |
| Cablu USB-C | 35,00 lei |
+----------------------+--------------+
Greșeli frecvente
- Sortezi după rezultatul lui
FORMAT(). Este text, deci'79,50'ajunge după'1.249,00'. Sortează după coloana numerică originală.