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

Wie TIMESTAMPADD() in MariaDB funktioniert

In MariaDB TIMESTAMPADD() ist eine integrierte Datums- und Zeitfunktion, die einem gegebenen Datums- oder Datumszeit-Ausdruck ein ganzzahliges Ausdrucksintervall hinzufügt.

Syntax

Die Syntax lautet wie folgt:

TIMESTAMPADD(unit,interval,datetime_expr) 

Wobei unit ist einer der folgenden Werte:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Die Einheiten können optional das Präfix SQL_TSI_ haben .

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT TIMESTAMPADD(DAY, 10, '2030-02-01'); 

Ergebnis:

+-------------------------------------+| TIMESTAMPADD(DAY, 10, '2030-02-01') |+---------------------------------------------- ---+| 2030-02-11 |+------------------------------------+

Datum/Uhrzeit-Werte

Hier ist ein Beispiel für die Übergabe eines datetime-Werts:

SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45'); 

Ergebnis:

+---------------------------------------------- -+| TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') |+------------------------------------ ------------------+| 01.02.2030 20:30:45 |+--------------------------------------------------- ---------+

Hinzufügen eines SQL_TSI_ Präfix

Die Einheit kann einen SQL_TSI_ enthalten Präfix falls erforderlich:

SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01'); 

Ergebnis:

+---------------------------------------------- +| TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') |+---------------------------------------------- -------------+| 01.02.2040 |+-------------------------------------------------- ---+

Mikrosekunden

Hier ist ein Beispiel, das Mikrosekunden hinzufügt:

SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45'); 

Ergebnis:

+---------------------------------------------- -------------+| TIMESTAMPADD(MICROSECUND, 123456, '2030-02-01 10:30:45') |+------------------------ -----------------------------+| 2030-02-01 10:30:45.123456 |+-------------------------------------- --------------------+

Negative Intervalle

Negative Intervalle sind gültig:

Beispiel:

SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01'); 

Ergebnis:

+--------------------------+| TIMESTAMPADD(YEAR, -10, '2030-02-01') |+-------------------------------- ------+| 01.02.2020 |+--------------------------------------+

Aktuelles Datum

Wir können NOW() übergeben als datetime-Argument, um das aktuelle Datum und die aktuelle Uhrzeit zu verwenden:

SELECT 
    NOW(),
    TIMESTAMPADD(DAY, 10, NOW()); 

Ergebnis:

+---------------------+-------------------------------- ------+| JETZT() | TIMESTAMPADD(DAY, 10, NOW()) |+---------------------+---------------- --------------+| 2021-05-28 09:58:56 | 2021-06-07 09:58:56 |+---------------------+---------------- --------------+

Fehlendes Argument

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

SELECT TIMESTAMPADD(); 

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

Und noch ein Beispiel:

SELECT TIMESTAMPADD(10, '2020-12-09'); 

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, die in der Nähe von '10, '2020-12-09')' in Zeile 1 zu verwenden ist