In MySQL können Sie das SUBDATE()
verwenden Funktion zum Subtrahieren einer bestimmten Zeitspanne von einem Datum. Sie können es beispielsweise verwenden, um 10 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.
Bei Verwendung der ersten unten aufgeführten Syntax wird SUBDATE()
Funktion ist ein Synonym für DATE_SUB()
Funktion (ähnlich wie ADDDATE()
ist ein Synonym für DATE_ADD()
bei Verwendung derselben Syntax).
Syntax
Sie können diese Funktion auf zwei Arten verwenden:
SUBDATE(date,INTERVAL expr unit)
Oder
SUBDATE(expr,days)
Beispiel 1 – Die erste Syntax
Hier ist ein Beispiel für die Verwendung der ersten Form der Syntax.
SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;
Ergebnis:
+------------+ | Result | +------------+ | 2018-05-08 | +------------+
Dieses Beispiel subtrahiert 2 Tage von dem Datum, das durch das erste Argument geliefert wird.
Beispiel 2 – Die zweite Syntax
Dieses Beispiel könnte wie folgt umgeschrieben werden:
SELECT SUBDATE('2018-05-10', 2) AS Result;
Ergebnis:
+------------+ | Result | +------------+ | 2018-05-08 | +------------+
Dies verwendet die zweite Form der Syntax. Das zweite Argument ist eine Ganzzahl, die angibt, wie viele Tage von dem vom ersten Argument gelieferten Datum subtrahiert werden sollen.
Wie erwähnt, SUBDATE()
ist ein Synonym für DATE_SUB()
, aber nur, wenn die erste Syntax verwendet wird. Die zweite Syntax ist nur in SUBDATE()
verfügbar .
Beispiel 3 – Andere Datumseinheiten
Ein Vorteil der ersten Form der Syntax besteht darin, dass Sie angeben können, ob Tage, Wochen, Monate, Jahre usw. subtrahiert werden sollen. Hier sind einige Beispiele.
SELECT '2018-05-10' AS 'Start Date', SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks', SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months', SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters', SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';
Ergebnis:
+------------+------------+------------+-------------+------------+ | Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years | +------------+------------+------------+-------------+------------+ | 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10 | 2016-05-10 | +------------+------------+------------+-------------+------------+
Beispiel 4 – Zeiteinheiten
Sie können auch SUBDATE()
verwenden um Zeiteinheiten von einem Datums-/Zeitwert zu subtrahieren. Hier ist ein Beispiel.
SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;
Ergebnis:
+---------------------+ | Result | +---------------------+ | 2018-05-09 23:00: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“ |