MariaDB enthält eine Reihe von Datums- und Zeiteinheiten, die Sie beim Arbeiten mit Datums- und Zeitwerten verwenden können. Beispiel:MONTH
ist eine Einheit und HOUR
ist eine andere Einheit.
Einige Einheiten sind zusammengesetzte Einheiten. Zusammengesetzte Einheiten sind, wenn zwei Einheiten zu einer kombiniert werden. Die Namenskonvention besteht darin, dass jeder Einheitenname durch einen Unterstrich getrennt wird. Beispiel:MINUTE_SECOND
ist für Minuten und Sekunden.
Nachfolgend finden Sie einige Beispiele, die zeigen, wie zusammengesetzte Einheiten in MariaDB funktionieren.
Liste zusammengesetzter Einheiten
Hier ist zunächst eine Liste der zusammengesetzten Einheiten, die in MariaDB verfügbar sind:
Einheit | Beschreibung |
---|---|
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 |
YEAR_MONTH | Jahre-Monate |
Ein Blick auf ihre Namen gibt einen ziemlich guten Hinweis darauf, was sie tun.
Zusammengesetzte Einheiten (wie bei jeder Datums-/Zeiteinheit) können verwendet werden, wenn Teile eines Datums-/Zeitwerts extrahiert werden, und auch wenn ein Zeitintervall zu einem Datums-/Zeitwert addiert und subtrahiert wird.
Diese können mit +
verwendet werden und -
Operatoren bei der Durchführung von Arithmetik mit Datumsangaben, mit Funktionen wie ADDDATE()
, SUBDATE()
, DATE_ADD()
, DATE_SUB()
, EXTRACT()
, TIMESTAMPADD()
und TIMESTAMPDIFF()
.
Sie können auch im ON SCHEDULE
verwendet werden -Klausel von CREATE_EVENT()
und ALTER_EVENT()
Funktionen.
Beispiel – Extrahieren zusammengesetzter Einheiten
Datums- und Zeiteinheiten können mit einer Reihe verschiedener Funktionen und in verschiedenen anderen Kontexten verwendet werden. Eine der Funktionen, die diese Einheiten akzeptiert, ist EXTRACT()
Funktion. Diese Funktion gibt eine bestimmte Datums-/Zeiteinheit aus einem bestimmten Datums- oder Datumszeitwert zurück.
Hier ist ein Beispiel für die Verwendung einer zusammengesetzten Einheit, um das Jahr und den Monat aus einem Datum zu extrahieren:
SELECT EXTRACT(YEAR_MONTH FROM '2030-12-25');
Ergebnis:
+--------------------------+| AUSZUG(JAHR_MONAT AUS '2030-12-25') |+------------------------------------ ---+| 203012 |+--------------------------------------------------+
Wir können sehen, dass Jahr und Monat als ein Wert zurückgegeben werden.
Beispiel – Addieren/Subtrahieren zusammengesetzter Einheiten
Zusammengesetzte Einheiten können auch zum Addieren und Subtrahieren von Datums- und Zeitintervallen verwendet werden.
Beispiel:
SELECT '2030-12-25' + INTERVAL '2:08' DAY_HOUR;
Ergebnis:
+------------------------------------+| '2030-12-25' + INTERVALL '2:08' TAG_STUNDE |+---------------------------------------------- --------+| 2030-12-27 08:00:00 |+------------------------------------- ---+
In diesem Fall sind bei der zusammengesetzten Einheit zwei Teile zu beachten.
Wie im vorherigen Beispiel haben wir eine zusammengesetzte Einheit verwendet (in diesem Fall DAY_HOUR
). In Bezug auf das tatsächlich hinzuzufügende Intervall haben wir einen Doppelpunkt verwendet, um jede Seite der zusammengesetzten Einheit zu trennen.
In diesem Fall haben wir '2:08'
angegeben , wodurch 2 Tage und 8 Stunden zum Datumswert hinzugefügt wurden. Das ursprüngliche Datum hat keinen Zeitabschnitt, daher wird angenommen, dass die Anfangszeit 00:00:00
ist .
MariaDB verzeiht die Strenge des Formats einigermaßen. Wir können den gleichen Effekt erzielen, indem wir verschiedene Trennzeichen verwenden und auch die führende Null weglassen.
Hier ist ein weiteres Beispiel, das DATE_ADD()
verwendet Funktion mit verschiedenen Zeitintervallen:
SELECT DATE_ADD('2030-12-25', INTERVAL '2!8' DAY_HOUR);
Ergebnis:
Hier sind einige weitere Beispiele für verschiedene zusammengesetzte Einheiten:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";
Ergebnis:
+---------------------+---------------------+-- -------------------+| JAHR_MONAT | HOUR_SECOND | DAY_MINUTE |+---------------------+---------------------+--- ------------------+| 01.07.2022 10:00:00 | 01.05.2021 11:25:35 | 2021-05-01 11:30:00 |+---------------------+---------------- -----+---------------------+