Mysql
 sql >> Datenbank >  >> RDS >> Mysql

DATE_SUB() Beispiele – MySQL

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.