I MySQL kan du använda DATE_ADD()
funktion för att lägga till en angiven tid till ett datum. Du kan till exempel använda den för att lägga till 5 dagar till ett givet datum. Du kan ange om du vill lägga till dagar, veckor, månader, kvartal, år, etc. Du kan också lägga till ett tidsvärde, som sekunder, mikrosekunder, etc.
Den här artikeln innehåller exempel som visar hur DATE_ADD()
funktionen fungerar.
Syntax
Syntaxen ser ut så här:
DATE_ADD(date,INTERVAL expr unit)
Exempel 1 – Grundläggande användning
Här är ett exempel på användning.
SELECT DATE_ADD('2020-10-01', INTERVAL 20 DAY) AS Result;
Resultat:
+------------+ | Result | +------------+ | 2020-10-21 | +------------+
Det här exemplet lägger till 20 dagar till det datum som anges av det första argumentet.
Exempel 2 – Andra datumenheter
Du kan ange enheterna i dagar, veckor, månader, år, etc. Här är några exempel.
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 | +------------+------------+------------+-------------+------------+
Exempel 3 – Tidsenheter
Du kan också lägga till tidsenheter till ett datum/tidsvärde. Här är ett exempel.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL 10 HOUR) AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2020-10-01 11:00:00 | +---------------------+
Och du kan ange flera enheter samtidigt. Du kan till exempel ange timmar och minuter. Så här.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2020-10-01 02:30:00 | +---------------------+
Förväntade värden
Följande tabell visar giltiga enhetsvärden och deras förväntade format.
unit Värde | Förväntat expr Format |
---|---|
MICROSECOND | MIKROSECONDS |
ANDRA | sekunder |
MINUT | MINUTTER |
TIMMAR | TIMMAR |
DAG | DAGAR |
VECKAN | VECKOR |
MÅNAD | MÅNADER |
KVARTAL | KVARTER |
ÅR | ÅR |
SECOND_MICROSECOND | ‘SECONDS.MICROSECONDS’ |
MINUTE_MICROSECOND | ‘MINUTES:SECONDS.MICROSECONDS’ |
MINUTE_SECOND | 'MINUTTER:SECONDS' |
HOUR_MICROSECOND | 'TIMMAR:MINUTTER:SECONDS.MICROSECONDS' |
HOUR_SECOND | 'TIMMAR:MINUTTER:SEKUNDER' |
HOUR_MINUTE | 'TIMMAR:MINUTTER' |
DAY_MICROSECOND | ‘DAGAR TIMMER:MINUTTER:SECONDS.MICROSECONDS’ |
DAY_SECOND | ‘DAGAR TIMMAR:MINUTTER:SECONDS’ |
DAY_MINUTE | ‘DAGAR TIMMAR:MINUTTER’ |
DAY_HOUR | 'DAGAR TIMMER' |
YEAR_MONTH | 'ÅR-MÅNADER' |
Du kan också använda ADDDATE()
funktion för att göra samma sak (det är en synonym för DATE_ADD()
funktion när du använder samma syntax). Dessutom syntaxen för ADDDATE()
har en andra form, som är en förkortningsmetod för att lägga till ett visst antal dagar till ett datum. För mer information, se ADDDATE()-exempel i MySQL.