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

SUBDATE() Beispiele – MySQL

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“