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

MariaDB zusammengesetzte Datums- und Zeiteinheiten erklärt

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:

+---------------------------------------------- ---+| DATE_ADD('2030-12-25', INTERVAL '2!8' DAY_HOUR) |+------------------------------ -------------------+| 2030-12-27 08:00:00 |+------------------------------------- -----------+

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 |+---------------------+---------------- -----+---------------------+