Ce face DATE_ADD()
DATE_ADD() adună un interval. Unitatea poate fi DAY, WEEK, MONTH, YEAR, HOUR, MINUTE și altele. La adăugarea de luni, dacă ziua nu există în luna nouă, MySQL folosește ultima zi a lunii (31 ianuarie + 1 lună = 28 februarie).
ADDDATE() este sinonim; în plus, acceptă direct un număr de zile ca al doilea parametru. Poți scrie și data + INTERVAL 1 DAY.
Parametri
| Parametru | Descriere |
|---|---|
data |
Data de pornire. |
valoare unitate |
Intervalul adăugat, ex. INTERVAL 7 DAY. O valoare negativă scade. |
Ce returnează
Data nouă.
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: Termene de livrare și garanție
SELECT id, DATE(plasata) AS plasata,
DATE(DATE_ADD(plasata, INTERVAL 3 DAY)) AS livrare_estimata,
DATE(DATE_ADD(plasata, INTERVAL 2 YEAR)) AS garantie_pana_la
FROM comenzi
ORDER BY id;
Rezultat
+-----+------------+------------------+------------------+
| id | plasata | livrare_estimata | garantie_pana_la |
+-----+------------+------------------+------------------+
| 101 | 2026-09-28 | 2026-10-01 | 2028-09-28 |
| 102 | 2026-10-05 | 2026-10-08 | 2028-10-05 |
| 103 | 2026-10-17 | 2026-10-20 | 2028-10-17 |
| 104 | 2026-12-30 | 2027-01-02 | 2028-12-30 |
+-----+------------+------------------+------------------+
Exemplul 2: Sfârșitul de lună, ADDDATE și operatorul +
SELECT DATE_ADD('2026-01-31', INTERVAL 1 MONTH) AS plus_o_luna,
ADDDATE('2026-10-19', 10) AS adddate_zile,
'2026-10-19' + INTERVAL 1 WEEK AS cu_operator;
Rezultat
+-------------+--------------+-------------+
| plus_o_luna | adddate_zile | cu_operator |
+-------------+--------------+-------------+
| 2026-02-28 | 2026-10-29 | 2026-10-26 |
+-------------+--------------+-------------+
Greșeli frecvente
- Scrii unitatea la plural:
INTERVAL 3 DAYS. MySQL acceptă doar forma la singular:DAY,MONTH,YEAR.
Comenzi înrudite
DATE_SUB(): Scade un interval dintr-o dată, de exemplu „acum 30 de zile”.TIMESTAMPADD(): Adaugă un număr de unități (minute, zile, luni…) la o dată; alternativă la DATE_ADD.DATEDIFF(): Numărul de zile dintre două date (data1 – data2), ignorând orele.