DATE_FORMAT() în MySQL

Afișează o dată în formatul dorit, ex. 19.10.2026 sau „Luni 19 Octombrie 2026”.

Sintaxă
DATE_FORMAT(data, format)

Ce face DATE_FORMAT()

DATE_FORMAT() transformă o dată în text după un șablon. Coduri uzuale: %d ziua (01-31), %e ziua fără zero, %m luna (01-12), %Y anul, %H ora (00-23), %i minutele, %s secundele, %W numele zilei, %M numele lunii.

Numele zilelor și lunilor apar în limba din lc_time_names; cu 'ro_RO' ies în română.

Parametri

Parametru Descriere
data Data formatată.
format Șablonul, cu coduri care încep cu %.

Ce returnează

Textul formatat.

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE comenzi (
  id INT PRIMARY KEY,
  client VARCHAR(30),
  plasata DATETIME,
  livrata DATETIME
);

INSERT INTO comenzi VALUES
  (101, 'Ana', '2026-09-28 09:15:00', '2026-10-01 14:20:00'),
  (102, 'Bogdan', '2026-10-05 18:40:00', '2026-10-06 10:05:00'),
  (103, 'Cristina', '2026-10-17 22:10:00', NULL),
  (104, 'Dan', '2026-12-30 11:00:00', '2027-01-04 16:30:00');

Exemplul 1: Format românesc numeric

SELECT id, DATE_FORMAT(plasata, '%d.%m.%Y %H:%i') AS plasata
FROM comenzi
ORDER BY id;

Rezultat

+-----+------------------+
| id  | plasata          |
+-----+------------------+
| 101 | 28.09.2026 09:15 |
| 102 | 05.10.2026 18:40 |
| 103 | 17.10.2026 22:10 |
| 104 | 30.12.2026 11:00 |
+-----+------------------+

Exemplul 2: Nume de zile și luni în română

SELECT DATE_FORMAT('2026-10-19 14:30:05', '%W %e %M %Y') AS engleza;

SET lc_time_names = 'ro_RO';
SELECT DATE_FORMAT('2026-10-19 14:30:05', '%W, %e %M %Y, ora %H:%i') AS romana;

Rezultat

+------------------------+
| engleza                |
+------------------------+
| Monday 19 October 2026 |
+------------------------+
+------------------------------------+
| romana                             |
+------------------------------------+
| Luni, 19 Octombrie 2026, ora 14:30 |
+------------------------------------+

Greșeli frecvente

  • Folosești %M pentru minute. %M este numele lunii; minutele sunt %i.
  • Sortezi după rezultatul lui DATE_FORMAT(data, '%d.%m.%Y'). Ordinea devine alfabetică după zi. Sortează după coloana originală.

Comenzi înrudite

  • STR_TO_DATE(): Transformă un text într-o dată, după formatul în care este scris (ex. 19.10.2026).
  • TIME_FORMAT(): Formatează o oră sau o durată, cu codurile pentru ore, minute și secunde.
  • GET_FORMAT(): Returnează șablonul de format standard pentru o regiune, gata de folosit în DATE_FORMAT().