WEEKDAY() în MySQL

Părțile unei date MySQL 5.0+

Numărul zilei din săptămână în stil european: 0 = luni, …, 6 = duminică.

Sintaxă
WEEKDAY(data)

Ce face WEEKDAY()

WEEKDAY() începe săptămâna cu lunea, care primește 0. Este numărătoarea potrivită pentru calendarele din România.

Parametri

Parametru Descriere
data Data analizată.

Ce returnează

Un număr de la 0 la 6.

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: Zile lucrătoare sau weekend

SELECT id, DATE(plasata) AS data,
       IF(WEEKDAY(plasata) < 5, 'lucrătoare', 'weekend') AS tip_zi
FROM comenzi
ORDER BY id;

Rezultat

+-----+------------+-------------+
| id  | data       | tip_zi      |
+-----+------------+-------------+
| 101 | 2026-09-28 | lucrătoare  |
| 102 | 2026-10-05 | lucrătoare  |
| 103 | 2026-10-17 | weekend     |
| 104 | 2026-12-30 | lucrătoare  |
+-----+------------+-------------+

Exemplul 2: Lunea săptămânii unei date

SELECT DATE_SUB('2026-10-22', INTERVAL WEEKDAY('2026-10-22') DAY) AS luni;

Rezultat

+------------+
| luni       |
+------------+
| 2026-10-19 |
+------------+

Greșeli frecvente

  • Amesteci WEEKDAY() (luni = 0) cu DAYOFWEEK() (duminică = 1) în același proiect. Alege una și folosește-o peste tot.

Comenzi înrudite

  • DAYOFWEEK(): Numărul zilei din săptămână: 1 = duminică, 2 = luni, …, 7 = sâmbătă.
  • DAYNAME(): Returnează numele zilei din săptămână; în română cu lc_time_names = ‘ro_RO’.
  • DATE_SUB(): Scade un interval dintr-o dată, de exemplu „acum 30 de zile”.