In MySQL können Sie das DATE_SUB()
verwenden Funktion zum Subtrahieren einer bestimmten Zeitspanne von einem Datum. Sie können es beispielsweise verwenden, um 7 Tage von einem bestimmten Datum abzuziehen. Sie können angeben, ob Tage, Wochen, Monate, Quartale, Jahre usw. subtrahiert werden sollen. Sie können auch einen Zeitwert wie Sekunden, Mikrosekunden usw. subtrahieren.
Diese Funktion ähnelt DATE_ADD()
, außer dass es von einem Datum abzieht, anstatt es zu addieren.
Syntax
Die Syntax lautet wie folgt:
DATE_SUB(date,INTERVAL expr unit)
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Anwendungsbeispiel.
SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;
Ergebnis:
+------------+ | Result | +------------+ | 2021-05-02 | +------------+
Dieses Beispiel subtrahiert 5 Tage von dem Datum, das durch das erste Argument geliefert wird.
Beispiel 2 – Andere Datumseinheiten
Sie können die Einheiten in Tagen, Wochen, Monaten, Jahren usw. angeben. Hier einige Beispiele.
SELECT '2021-05-07' AS 'Start Date', DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks', DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months', DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters', DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';
Ergebnis:
+------------+------------+------------+-------------+------------+ | Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years | +------------+------------+------------+-------------+------------+ | 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07 | 2019-05-07 | +------------+------------+------------+-------------+------------+
Beispiel 3 – Zeiteinheiten
Sie können auch Zeiteinheiten von einem Datums-/Uhrzeitwert subtrahieren. Hier ist ein Beispiel.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;
Ergebnis:
+---------------------+ | Result | +---------------------+ | 2021-05-07 05:00:00 | +---------------------+
Und Sie können mehrere Einheiten gleichzeitig angeben. Sie können beispielsweise Stunden und Minuten angeben. So.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Ergebnis:
+---------------------+ | Result | +---------------------+ | 2021-05-07 08:30:00 | +---------------------+
Erwartete Werte
Die folgende Tabelle zeigt die gültigen Einheitenwerte und ihr erwartetes Format.
unit Wert | Erwarteter expr Formatieren |
---|---|
Mikrosekunde | MIKROSEKUNDEN |
ZWEITE | SEKUNDEN |
MINUTE | MINUTEN |
STUNDE | STUNDEN |
TAG | TAGE |
WOCHE | WOCHEN |
MONAT | MONATE |
QUARTAL | VIERTEL |
JAHR | JAHRE |
SECOND_MICROSECOND | ‘SEKUNDEN.MIKROSEKUNDEN’ |
MINUTE_MICROSECOND | ‘MINUTEN:SEKUNDEN.MIKROSEKUNDEN’ |
MINUTE_SECOND | ‘MINUTEN:SEKUNDEN’ |
HOUR_MICROSECOND | ‘STUNDEN:MINUTEN:SEKUNDEN.MIKROSEKUNDEN’ |
HOUR_SECOND | ‘STUNDEN:MINUTEN:SEKUNDEN’ |
HOUR_MINUTE | ‘STUNDEN:MINUTEN’ |
DAY_MICROSECOND | ‘TAGE STUNDEN:MINUTEN:SEKUNDEN.MIKROSEKUNDEN’ |
DAY_SECOND | ‘TAGE STUNDEN:MINUTEN:SEKUNDEN’ |
DAY_MINUTE | ‘TAGE STUNDEN:MINUTEN’ |
DAY_HOUR | „TAGE STUNDEN“ |
JAHR_MONAT | „JAHRE-MONATE“ |
Sie können auch das SUBDATE()
verwenden Funktion, um dasselbe zu tun (es ist ein Synonym für DATE_SUB()
Funktion bei Verwendung derselben Syntax).
Außerdem die Syntax von SUBDATE()
hat eine zweite Form, die eine Kurzform zum Subtrahieren einer bestimmten Anzahl von Tagen von einem Datum ist. Weitere Informationen finden Sie unter SUBDATE()-Beispiele in MySQL.