I MySQL kan du använda ADDDATE()
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 10 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.
ADDDATE()
funktion är en synonym för DATE_ADD()
funktion (de gör båda samma sak) när du använder den första syntaxen nedan.
Den här artikeln innehåller exempel för att demonstrera användningen av ADDDATE()
funktion.
Syntax
Du kan använda den här funktionen på följande två sätt:
ADDDATE(date,INTERVAL expr unit)
Eller
ADDDATE(expr,days)
Exempel 1 – Den första syntaxen
Här är ett exempel på hur du använder den första formen av syntaxen.
SELECT ADDDATE('2018-12-01', INTERVAL 2 DAY) AS Result;
Resultat:
+------------+ | Result | +------------+ | 2018-12-03 | +------------+
Detta exempel lägger till 2 dagar till det datum som anges av det första argumentet.
Exempel 2 – Den andra syntaxen
Detta exempel kan skrivas om till följande:
SELECT ADDDATE('2018-12-01', 2) AS Result;
Resultat:
+------------+ | Result | +------------+ | 2018-12-03 | +------------+
Detta använder den andra formen av syntaxen. Det andra argumentet är ett heltal som representerar hur många dagar som ska läggas till datumet som tillhandahålls av det första argumentet. Så självklart är det här formuläret endast lämpligt om du vill ange beloppet i dagar.
Observera att ADDDATE()
är en synonym för DATE_ADD()
endast när den första syntaxen används. Den andra syntaxen är endast tillgänglig i ADDDATE()
.
Exempel 3 – Andra datumenheter
En fördel med den första formen av syntaxen är att du kan ange om du vill lägga till dagar, veckor, månader, år etc. Här är några exempel.
SELECT '2018-12-01' AS 'Start Date', ADDDATE('2018-12-01', INTERVAL 2 WEEK) AS '+2 Weeks', ADDDATE('2018-12-01', INTERVAL 2 MONTH) AS '+2 Months', ADDDATE('2018-12-01', INTERVAL 2 QUARTER) AS '+2 Quarters', ADDDATE('2018-12-01', INTERVAL 2 YEAR) AS '+2 Years';
Resultat:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2018-12-01 | 2018-12-15 | 2019-02-01 | 2019-06-01 | 2020-12-01 | +------------+------------+------------+-------------+------------+
Exempel 4 – Tidsenheter
Du kan också använda ADDDATE()
för att lägga till tidsenheter till ett datum/tidsvärde. Här är ett exempel.
SELECT ADDDATE('2018-12-01 01:00:00', INTERVAL 2 HOUR) AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2018-12-01 03:00: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' |