In MariaDB, TIMESTAMPADD()
is een ingebouwde datum- en tijdfunctie die een integer expressie-interval toevoegt aan een bepaalde datum- of datetime-expressie.
Syntaxis
De syntaxis gaat als volgt:
TIMESTAMPADD(unit,interval,datetime_expr)
Waar unit
is een van de volgende waarden:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
De eenheden kunnen optioneel een prefix hebben van SQL_TSI_
.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT TIMESTAMPADD(DAY, 10, '2030-02-01');
Resultaat:
+-------------------------------------+ | TIMESTAMPADD(DAY, 10, '2030-02-01') | +-------------------------------------+ | 2030-02-11 | +-------------------------------------+
Datum/tijd-waarden
Hier is een voorbeeld van het doorgeven van een datetime-waarde:
SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45');
Resultaat:
+-----------------------------------------------+ | TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') | +-----------------------------------------------+ | 2030-02-01 20:30:45 | +-----------------------------------------------+
Een SQL_TSI_
toevoegen Voorvoegsel
Het apparaat kan een SQL_TSI_
. bevatten voorvoegsel indien nodig:
SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01');
Resultaat:
+----------------------------------------------+ | TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') | +----------------------------------------------+ | 2040-02-01 | +----------------------------------------------+
Microseconden
Hier is een voorbeeld dat microseconden toevoegt:
SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45');
Resultaat:
+----------------------------------------------------------+ | TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45') | +----------------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +----------------------------------------------------------+
Negatieve intervallen
Negatieve intervallen zijn geldig:
Voorbeeld:
SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01');
Resultaat:
+---------------------------------------+ | TIMESTAMPADD(YEAR, -10, '2030-02-01') | +---------------------------------------+ | 2020-02-01 | +---------------------------------------+
Huidige datum
We kunnen NOW()
doorgeven als het datetime-argument om de huidige datum en tijd te gebruiken:
SELECT
NOW(),
TIMESTAMPADD(DAY, 10, NOW());
Resultaat:
+---------------------+------------------------------+ | NOW() | TIMESTAMPADD(DAY, 10, NOW()) | +---------------------+------------------------------+ | 2021-05-28 09:58:56 | 2021-06-07 09:58:56 | +---------------------+------------------------------+
Ontbrekend argument
Bellen TIMESTAMPADD()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT TIMESTAMPADD();
Resultaat:
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
En nog een voorbeeld:
SELECT TIMESTAMPADD(10, '2020-12-09');
Resultaat:
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