MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

So subtrahieren Sie Stunden von einem Datetime-Wert in MariaDB

Hier sind einige Optionen zum Subtrahieren einer oder mehrerer Stunden von einem datetime-Wert in MariaDB.

Die SUBTIME() Funktion

Die SUBTIME() subtrahiert eine bestimmte Zeitspanne von einem time- oder datetime-Wert.

Beispiel:

SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00'); 

Ergebnis:

+--------------------------------------------------+| UNTERZEIT('2021-05-01 10:00:00', '01:00:00') |+-------------------- -------------------+| 2021-05-01 09:00:00 |+--------------------------------------------------- ------+

Sie können auch die anderen Zeiteinheiten wie Minuten, Sekunden usw. ändern.

Der DATE_SUB() Funktion

Das DATE_SUB() Mit der Funktion können Sie eine bestimmte Anzahl von Datums-/Zeiteinheiten von einem Datums- oder Datumszeitausdruck subtrahieren. Daher können wir diese Funktion verwenden, um den datetime-Wert abzüglich einer bestimmten Anzahl von Stunden zurückzugeben.

Beispiel:

SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR); 

Ergebnis:

+---------------------------------------------- ----+| DATE_SUB('2021-05-01 10:00:00', INTERVALL 1 STUNDE) |+------------------------------------- ---------------------+| 2021-05-01 09:00:00 |+--------------------------------------------------- -------------+

Sie können auch zusammengesetzte Datums- und Zeiteinheiten verwenden. Zum Beispiel könnten Sie Stunden und Minuten auf einmal erledigen.

Beispiel:

SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE); 

Ergebnis:

+---------------------------------------------- ------------------+| DATE_SUB('2021-05-01 10:00:00', INTERVALL '15:30' HOUR_MINUTE) |+-------------------- --------------------------------------+| 2021-04-30 18:30:00 |+--------------------------------------------------- -------------------------+

Gerade das Datum übergeben

Folgendes passiert, wenn wir nur einen Datumswert angeben:

SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR); 

Ergebnis:

+------------------------------------+| DATE_SUB('2021-05-01', INTERVALL 1 STUNDE) |+---------------------------------------------- -------+| 2021-04-30 23:00:00 |+--------------------------------------------------- ---+

Es geht davon aus, dass die Zeit um 00:00:00 Uhr beginnt, und somit die HOUR davon wird der Betrag abgezogen.

Mehrere Stunden

Wenn Sie mehr als eine Stunde abziehen müssen, verwenden Sie einfach diese Zahl anstelle von 1 . Aber die HOUR Schlüsselwort bleibt unabhängig davon Nicht-Plural:

SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR); 

Ergebnis:

+---------------------------------------------- ----+| DATE_SUB('2021-05-01 10:00:00', INTERVALL 2 STUNDEN) |+------------------------ ---------------------+| 2021-05-01 08:00:00 |+--------------------------------------------------- -------------+

Der Subtraktionsoperator (- )

Eine andere Möglichkeit, Stunden von einem datetime-Ausdruck zu subtrahieren, ist die Verwendung des Subtraktionsoperators (- ), auch Minusoperator genannt.

Beispiel:

SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR; 

Ergebnis:

+--------------------------------------------------+| '2021-05-01 10:00:00' - INTERVALL 48 STUNDEN |+------------------------------- ----------+| 2021-04-29 10:00:00 |+-------------------------------------------------- ----+

Der Additionsoperator (+ )

Alternativ können Sie auch den Additionsoperator (+ ) zusammen mit einem negativen Betrag.

Beispiel:

SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR; 

Ergebnis:

+--------------------------------------------------+| '2021-05-01 10:00:00' + INTERVALL -48 STUNDE |+------------------------------- -------------+| 2021-04-29 10:00:00 |+-------------------------------------------------- -----+

Andere Möglichkeiten zum Subtrahieren von Stunden

Hier sind einige andere Ansätze, die Sie verwenden könnten, um eine oder mehrere Stunden von einem datetime-Wert abzuziehen:

  • Der ADDTIME() Funktion (bei Angabe eines negativen Betrags wird dieser Betrag vom datetime-Wert subtrahiert).
  • Das SUBDATE() Funktion (dies ist ein Synonym für DATE_SUB() bei Verwendung mit derselben Syntax).
  • Der DATE_ADD() Funktion (bei Angabe eines negativen Betrags wird dieser Betrag vom datetime-Wert subtrahiert).
  • Das ADDDATE() Funktion (bei Angabe eines negativen Betrags wird dieser Betrag vom datetime-Wert subtrahiert).