Datenbank.Anleitung

In MySQL können Sie die Funktion DATE_SUB() verwenden, um eine bestimmte Zeitspanne von einem Datum zu subtrahieren. Zum Beispiel können Sie damit 7 Tage von einem bestimmten Datum abziehen. Sie können angeben, ob Tage, Wochen, Monate, Quartale, Jahre usw. abgezogen werden sollen. Sie können auch einen Zeitwert wie Sekunden, Mikrosekunden usw. subtrahieren.

Diese Funktion ist ähnlich wie DATE_ADD(), außer dass sie von einem Datum subtrahiert, anstatt es zu addieren.

Syntax

Die Syntax geht so:

DATE_SUB(date,INTERVAL expr unit)

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel für die Verwendung.

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Ergebnis:

+------------+| Result |+------------+| 2021-05-02 |+------------+

Dieses Beispiel subtrahiert 5 Tage von dem im ersten Argument angegebenen Datum.

Beispiel 2 – Andere Datumseinheiten

Sie können die Einheiten in Tagen, Wochen, Monaten, Jahren, usw. angeben. Hier sind 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-/Zeitwert subtrahieren. Hier ein Beispiel:

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

Ergebnis:

+---------------------+| Result |+---------------------+| 2021-05-07 05:00:00 |+---------------------+

Sie können auch mehrere Einheiten gleichzeitig angeben. Zum Beispiel können Sie 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 Erwartetes expr Format
MIKROSEKUNDE MIKROSEKUNDEN
SEKUNDE SEKUNDEN
MINUTE MINUTEN
STUNDE STUNDEN
TAG TAGE
WOCHE WOCHEN
MONAT MONATE
QUARTAL VIERTEL
JAHR JAHRE
SEKUNDE_MIKROSEKUNDE ‚SEKUNDEN.MIKROSEKUNDEN‘
MINUTE_MIKROSEKUNDE ‚MINUTEN:SEKUNDEN.MIKROSEKUNDEN‘
MINUTENSEKUNDE ‚MINUTEN:SEKUNDEN‘
STUNDEN_MIKROSEKUNDE ‚STUNDEN:MINUTEN:SEKUNDEN.MIKROSEKUNDEN‘
STUNDE_SEKUNDE ‚STUNDEN:MINUTEN:SEKUNDEN‘
STUNDE_MINUTE ‚STUNDEN:MINUTEN‘
TAG_MIKROSEKUNDE ‚TAGE STUNDEN:MINUTEN:SEKUNDEN.MIKROSEKUNDEN‘
TAG_SEKUNDE ‚TAGE STUNDEN:MINUTEN:SEKUNDEN‘
TAG_MINUTE ‚TAGE STUNDEN:MINUTEN‘
TAG_STUNDE ‚TAGE STUNDEN‘
JAHR_MONAT ‚JAHRE.MONATE‘

Sie können auch die Funktion SUBDATE() verwenden, um dasselbe zu tun (sie ist ein Synonym für die Funktion DATE_SUB(), wenn Sie dieselbe Syntax verwenden).

Zusätzlich hat die Syntax von SUBDATE() eine zweite Form, die eine Kurzschriftmethode ist, um eine bestimmte Anzahl von Tagen von einem Datum abzuziehen. Weitere Informationen finden Sie unter SUBDATE()-Beispiele in MySQL.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.