SQL Academy
Premium
Funktionsreferenz

DATE_ADD

Addiert ein Zeitintervall zu einem Datum.

MySQL 8.1
DATE_ADD(date, INTERVAL expr unit)

Parameter

dateDATE
Ausgangsdatum oder Datum mit Uhrzeit
INTERVAL expr unitSchlüsselwort
Zu addierendes Intervall: Anzahl expr und Einheit unit, zum Beispiel INTERVAL 7 DAY
Werte:MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

Rückgabewert

Datum, wenn zu einem Datum Tage oder größere Einheiten addiert werden, sonst Datum mit Uhrzeit; gibt es den Tag im Monat nicht, wird der letzte Tag des Monats verwendet

Beispiele

Eine Woche zum Zahlungsdatum

MySQL 8.1
SELECT payment_id,
	date,
	DATE_ADD(date, INTERVAL 7 DAY) AS due_date
FROM Payments;
payment_iddatedue_date
12005-02-122005-02-19
22005-03-232005-03-30
32005-05-142005-05-21
42005-07-222005-07-29
52005-07-262005-08-02
62005-02-202005-02-27
72005-07-302005-08-06
82005-09-122005-09-19
92005-09-302005-10-07
102005-10-272005-11-03

Ein Monat zum 31. Januar

MySQL 8.1
SELECT DATE_ADD('2024-01-31', INTERVAL 1 MONTH) AS new_date;
new_date
2024-02-29

Zusammengesetzte Intervalleinheit

MySQL 8.1
SELECT DATE_ADD(
		'2022-06-16 10:00:00',
		INTERVAL '1:30' HOUR_MINUTE
	) AS new_date;
new_date
2022-06-16 11:30:00

Details

Statt der Funktion kannst du ein Intervall auch mit einem Operator addieren oder subtrahieren: date + INTERVAL 7 DAY. In PostgreSQL gibt es diese Funktion nicht: Ein Datum wird dort mit demselben Operator verschoben, aber das Intervall wird als String geschrieben: date + INTERVAL '7 days'.

Zusammengesetzte EinheitFormat des Strings exprBeispiel
SECOND_MICROSECONDSekunden.Mikrosekunden'10.000500'
MINUTE_MICROSECONDMinuten:Sekunden.Mikrosekunden'5:10.000500'
MINUTE_SECONDMinuten:Sekunden'5:10'
HOUR_MICROSECONDStunden:Minuten:Sekunden.Mikrosekunden'2:05:10.000500'
HOUR_SECONDStunden:Minuten:Sekunden'2:05:10'
HOUR_MINUTEStunden:Minuten'1:30'
DAY_MICROSECONDTage Stunden:Minuten:Sekunden.Mikrosekunden'1 2:05:10.000500'
DAY_SECONDTage Stunden:Minuten:Sekunden'1 2:05:10'
DAY_MINUTETage Stunden:Minuten'1 2:05'
DAY_HOURTage Stunden'1 12'
YEAR_MONTHJahre-Monate'1-6'

Siehe auch