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

Wie DATE_ADD() in MariaDB funktioniert

In MariaDB DATE_ADD() ist eine integrierte Datums- und Uhrzeitfunktion, die Datumsarithmetik durchführt.

Sie können ein Datum ändern, indem Sie das Datum, die hinzuzufügende Einheit und den hinzuzufügenden Betrag angeben. Sie können einen negativen Betrag übergeben, wenn Sie das Datum um ein bestimmtes Intervall subtrahieren müssen.

Syntax

Die Syntax lautet wie folgt:

DATE_ADD(date,INTERVAL expr unit) 

Wobei date ist das zu ändernde Datum, expr ist der hinzuzufügende Betrag und unit ist die hinzuzufügende Datums-/Zeiteinheit (z. B. Sekunde, Minute usw.).

Beispiel

Hier ist ein einfaches Beispiel:

SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR); 

Ergebnis:

+---------------------------------------------- ----+| DATE_ADD('2021-05-31 10:00:00', INTERVALL 1 STUNDE) |+----------------------------------------- ---------------------+| 2021-05-31 11:00:00 |+------------------------------------- -------------+

Das ist wie das Folgende:

SELECT '2021-05-31 10:00:00' + INTERVAL 1 HOUR; 

Ergebnis:

+------------------------------------+| '2021-05-31 10:00:00' + INTERVALL 1 STUNDE |+--------------------------------------------- ---------+| 2021-05-31 11:00:00 |+------------------------------------- ---+

Negative Intervalle

Bei Angabe eines negativen Intervalls wird dieser Betrag vom Datum abgezogen.

Beispiel:

SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL -1 HOUR); 

Ergebnis:

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

Andere Einheiten

Hier ist ein Beispiel, das den verschiedenen Datums- und Zeiteinheiten ein Intervall von 1 hinzufügt:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND; 

Ergebnis (bei vertikaler Ausgabe):

 JAHR:2022-05-01 10:00:00 MONAT:2021-06-01 10:00:00 TAG:2021-05-02 10:00:00 STUNDE:2021-05-01 11:00:00 MINUTE:2021-05-01 10:01:00 SEKUNDE:2021-05-01 10:00:01 MIKROSEKUNDE:2021-05-01 10:00:00.000001

Zusammengesetzte Einheiten

Hier ist ein Beispiel, das zusammengesetzte Einheiten verwendet:

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

Nulldaten

Übergabe von null für das Datum gibt null zurück :

SELECT DATE_ADD(null, INTERVAL 1 YEAR); 

Ergebnis:

+---------------------------------+| DATE_ADD(null, INTERVAL 1 JAHR) |+----------------------------------------------+| NULL |+---------------------------------------------+

Fehlendes Argument

Aufruf von DATE_ADD() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT DATE_ADD(); 

Ergebnis:

ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden