EXTRACT() în MySQL

Părțile unei date MySQL 5.0+

Extrage o parte dintr-o dată: anul, luna, ziua, ora sau combinații (ex. YEAR_MONTH).

Sintaxă
EXTRACT(unitate FROM data)

Ce face EXTRACT()

EXTRACT() este forma standard SQL pentru funcțiile YEAR(), MONTH(), DAY() etc. În plus, acceptă unități compuse, de exemplu YEAR_MONTH (202610) sau DAY_HOUR.

Parametri

Parametru Descriere
unitate YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MICROSECOND sau o combinație ca YEAR_MONTH, DAY_HOUR, HOUR_MINUTE.
data Data din care se extrage.

Ce returnează

Un număr întreg.

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: Părți simple și compuse

SELECT EXTRACT(YEAR FROM '2026-10-19 14:30:00') AS an,
       EXTRACT(MONTH FROM '2026-10-19 14:30:00') AS luna,
       EXTRACT(YEAR_MONTH FROM '2026-10-19 14:30:00') AS an_luna,
       EXTRACT(HOUR_MINUTE FROM '2026-10-19 14:30:00') AS ora_minut;

Rezultat

+------+------+---------+-----------+
| an   | luna | an_luna | ora_minut |
+------+------+---------+-----------+
| 2026 |   10 |  202610 |      1430 |
+------+------+---------+-----------+

Exemplul 2: Vânzări pe luni

SELECT EXTRACT(YEAR_MONTH FROM plasata) AS luna, COUNT(*) AS comenzi
FROM comenzi
GROUP BY luna
ORDER BY luna;

Rezultat

+--------+---------+
| luna   | comenzi |
+--------+---------+
| 202609 |       1 |
| 202610 |       2 |
| 202612 |       1 |
+--------+---------+

Greșeli frecvente

  • Scrii EXTRACT(YEAR, data) cu virgulă, ca la alte funcții. Sintaxa corectă folosește cuvântul FROM.

Comenzi înrudite

  • YEAR(): Returnează anul dintr-o dată (1000-9999).
  • MONTH(): Returnează luna dintr-o dată, ca număr de la 1 la 12.
  • DATE_FORMAT(): Afișează o dată în formatul dorit, ex. 19.10.2026 sau „Luni 19 Octombrie 2026”.