SUBDATE
Zieht ein Zeitintervall oder eine Anzahl von Tagen von einem Datum ab.
MySQL 8.4
SUBDATE(date, INTERVAL expr unit | days)- a | beine der Optionen
- date
- Ausgangsdatum oder Datum mit UhrzeitDATE
- INTERVAL expr unit
- Abzuziehendes Intervall, zum Beispiel INTERVAL 10 DAY
- expr
- Wie viele Einheiten abgezogen werden
- unit
- Einheit des IntervallsSchlüsselwortMICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
- days
- Anzahl der Tage als Kurzform statt INTERVALINT
Rückgabewert
Datum, wenn von einem Datum Tage oder größere Einheiten abgezogen werden, sonst Datum mit Uhrzeit; gibt es den Tag im Monat nicht, wird der letzte Tag des Monats verwendet
Beispiele
Zehn Tage vor einem Datum
MySQL 8.4
SELECT SUBDATE('2022-06-16', INTERVAL 10 DAY) AS new_date;Kurzform mit Tagen
MySQL 8.4
SELECT SUBDATE('2022-06-16', 10) AS new_date;Zusammengesetzte Intervalleinheit
MySQL 8.4
SELECT SUBDATE('2022-06-16', INTERVAL '1 12' DAY_HOUR) AS new_date;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'.