FORMAT() în MySQL

Funcții pentru șiruri MySQL 5.0+ (parametrul locale: 5.5+)

Formatează un număr cu separator de mii și un număr fix de zecimale, opțional după limbă.

Sintaxă
FORMAT(numar, zecimale[, locale])

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ă.

Comenzi înrudite

  • ROUND(): Rotunjește un număr la un număr de zecimale (sau la zeci, sute, cu valori negative).
  • CONCAT: Lipește mai multe texte într-unul singur.
  • LPAD(): Completează un text la stânga până la o lungime dată (ex. zerouri în fața unui număr).