V MariaDB, TIMESTAMPADD() je vestavěná funkce data a času, která k danému výrazu data nebo data a času přidává interval výrazu celého čísla.
Syntaxe
Syntaxe vypadá takto:
TIMESTAMPADD(unit,interval,datetime_expr)
Kde unit je jedna z následujících hodnot:
MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEAR
Jednotky mohou mít volitelně předponu SQL_TSI_ .
Příklad
Zde je příklad k demonstraci:
SELECT TIMESTAMPADD(DAY, 10, '2030-02-01'); Výsledek:
+-------------------------------------+ | TIMESTAMPADD(DAY, 10, '2030-02-01') | +-------------------------------------+ | 2030-02-11 | +-------------------------------------+
Hodnoty data a času
Zde je příklad předání hodnoty datetime:
SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45'); Výsledek:
+-----------------------------------------------+ | TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') | +-----------------------------------------------+ | 2030-02-01 20:30:45 | +-----------------------------------------------+
Přidání SQL_TSI_ Předpona
Jednotka může obsahovat SQL_TSI_ prefix, pokud je požadován:
SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01'); Výsledek:
+----------------------------------------------+ | TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') | +----------------------------------------------+ | 2040-02-01 | +----------------------------------------------+
Mikrosekundy
Zde je příklad, který přidává mikrosekundy:
SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45'); Výsledek:
+----------------------------------------------------------+ | TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45') | +----------------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +----------------------------------------------------------+
Záporné intervaly
Záporné intervaly jsou platné:
Příklad:
SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01'); Výsledek:
+---------------------------------------+ | TIMESTAMPADD(YEAR, -10, '2030-02-01') | +---------------------------------------+ | 2020-02-01 | +---------------------------------------+
Aktuální datum
Můžeme předat NOW() jako argument datetime pro použití aktuálního data a času:
SELECT
NOW(),
TIMESTAMPADD(DAY, 10, NOW()); Výsledek:
+---------------------+------------------------------+ | NOW() | TIMESTAMPADD(DAY, 10, NOW()) | +---------------------+------------------------------+ | 2021-05-28 09:58:56 | 2021-06-07 09:58:56 | +---------------------+------------------------------+
Chybí argument
Volání TIMESTAMPADD() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT TIMESTAMPADD(); Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
A další příklad:
SELECT TIMESTAMPADD(10, '2020-12-09'); Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10, '2020-12-09')' at line 1