I MariaDB, TIMESTAMPADD()
er en indbygget dato- og klokkeslætsfunktion, der tilføjer et heltalsudtryksinterval til et givet dato- eller datotidsudtryk.
Syntaks
Syntaksen ser sådan ud:
TIMESTAMPADD(unit,interval,datetime_expr)
Hvor unit
er en af følgende værdier:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Enhederne kan valgfrit have præfikset SQL_TSI_
.
Eksempel
Her er et eksempel til demonstration:
SELECT TIMESTAMPADD(DAY, 10, '2030-02-01');
Resultat:
+-------------------------------------+ | TIMESTAMPADD(DAY, 10, '2030-02-01') | +-------------------------------------+ | 2030-02-11 | +-------------------------------------+
Dato-tidsværdier
Her er et eksempel på videregivelse af en datetime-værdi:
SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45');
Resultat:
+-----------------------------------------------+ | TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') | +-----------------------------------------------+ | 2030-02-01 20:30:45 | +-----------------------------------------------+
Tilføjelse af en SQL_TSI_
Præfiks
Enheden kan inkludere en SQL_TSI_
præfiks om nødvendigt:
SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01');
Resultat:
+----------------------------------------------+ | TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') | +----------------------------------------------+ | 2040-02-01 | +----------------------------------------------+
Mikrosekunder
Her er et eksempel, der tilføjer mikrosekunder:
SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45');
Resultat:
+----------------------------------------------------------+ | TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45') | +----------------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +----------------------------------------------------------+
Negative intervaller
Negative intervaller er gyldige:
Eksempel:
SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01');
Resultat:
+---------------------------------------+ | TIMESTAMPADD(YEAR, -10, '2030-02-01') | +---------------------------------------+ | 2020-02-01 | +---------------------------------------+
Aktuel dato
Vi kan sende NOW()
som datetime-argument for at bruge den aktuelle dato og tid:
SELECT
NOW(),
TIMESTAMPADD(DAY, 10, NOW());
Resultat:
+---------------------+------------------------------+ | NOW() | TIMESTAMPADD(DAY, 10, NOW()) | +---------------------+------------------------------+ | 2021-05-28 09:58:56 | 2021-06-07 09:58:56 | +---------------------+------------------------------+
Manglende argument
Kalder TIMESTAMPADD()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT TIMESTAMPADD();
Resultat:
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
Og endnu et eksempel:
SELECT TIMESTAMPADD(10, '2020-12-09');
Resultat:
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