I MySQL kan du bruge DATE_ADD()
funktion til at føje en bestemt mængde tid til en dato. For eksempel kan du bruge det til at tilføje 5 dage til en given dato. Du kan angive, om du vil tilføje dage, uger, måneder, kvartaler, år osv. Du kan også tilføje en tidsværdi, såsom sekunder, mikrosekunder osv.
Denne artikel indeholder eksempler, der viser, hvordan DATE_ADD()
funktion virker.
Syntaks
Syntaksen ser sådan ud:
DATE_ADD(date,INTERVAL expr unit)
Eksempel 1 – Grundlæggende brug
Her er et eksempel på brug.
SELECT DATE_ADD('2020-10-01', INTERVAL 20 DAY) AS Result;
Resultat:
+------------+ | Result | +------------+ | 2020-10-21 | +------------+
Dette eksempel føjer 20 dage til datoen fra det første argument.
Eksempel 2 – Andre datoenheder
Du kan angive enhederne i dage, uger, måneder, år osv. Her er nogle eksempler.
SELECT '2020-10-01' AS 'Start Date', DATE_ADD('2020-10-01', INTERVAL 2 WEEK) AS '+2 Weeks', DATE_ADD('2020-10-01', INTERVAL 2 MONTH) AS '+2 Months', DATE_ADD('2020-10-01', INTERVAL 2 QUARTER) AS '+2 Quarters', DATE_ADD('2020-10-01', INTERVAL 2 YEAR) AS '+2 Years';
Resultat:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2020-10-01 | 2020-10-15 | 2020-12-01 | 2021-04-01 | 2022-10-01 | +------------+------------+------------+-------------+------------+
Eksempel 3 – Tidsenheder
Du kan også tilføje tidsenheder til en dato/tidsværdi. Her er et eksempel.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL 10 HOUR) AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2020-10-01 11:00:00 | +---------------------+
Og du kan angive flere enheder på samme tid. For eksempel kan du angive timer og minutter. Sådan.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2020-10-01 02:30:00 | +---------------------+
Forventede værdier
Følgende tabel viser de gyldige enhedsværdier og deres forventede format.
unit Værdi | Forventet expr Formater |
---|---|
MICROSECOND | MIKROSEKUNDER |
ANDEN | SEKUNDER |
MINUT | MINUTTER |
TIME | TIMER |
DAG | DAGE |
UGE | UGER |
MÅNED | MÅNEDER |
KVART | KVARTERE |
ÅR | ÅR |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTTER:SECONDS.MICROSECONDS' |
MINUTE_SECOND | 'MINUTTER:SECONDS' |
HOUR_MICROSECOND | 'TIMER:MINUTTER:SECONDS.MICROSECONDS' |
HOUR_SECOND | 'TIMER:MINUTTER:SECONDS' |
HOUR_MINUTE | 'TIMER:MINUTTER' |
DAY_MICROSECOND | 'DAGE TIMER:MINUTTER:SECONDS.MICROSECONDS' |
DAY_SECOND | 'DAGE TIMER:MINUTTER:SECONDS' |
DAY_MINUTE | 'DAGE TIMER:MINUTTER' |
DAY_HOUR | 'DAGE TIMER' |
YEAR_MONTH | 'ÅR-MÅNEDER' |
Du kan også bruge ADDDATE()
funktion til at gøre det samme (det er et synonym for DATE_ADD()
funktion, når du bruger den samme syntaks). Derudover syntaksen for ADDDATE()
har en anden form, som er en stenografimetode til at tilføje et bestemt antal dage til en dato. For mere information, se ADDDATE()-eksempler i MySQL.