sql >> Databasteknik >  >> RDS >> Mysql

DATE_ADD() Exempel – MySQL

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.


  1. 3 sätt att upptäcka om en sträng matchar ett reguljärt uttryck i MySQL

  2. Använda Transaktion ROLLBACK i SQL Server

  3. Returnera noll om ingen post hittas

  4. Skillnaden mellan multi-statement tabell-värderade funktioner och inline tabell-värderade funktioner i SQL Server