sql >> Database teknologi >  >> RDS >> MariaDB

6 måder at tilføje en måned til en dato i MariaDB

MariaDB giver flere måder at udføre aritmetik på datoer. Dette inkluderer tilføjelse eller fratrækning af en måned (eller mange måneder) fra en given dato.

Her er 6 måder at tilføje en måned til en dato i MariaDB.

Bonusopdatering :Jeg har nu tilføjet en syvende måde at tilføje en måned til en dato i slutningen af ​​denne artikel. Så jeg gætter på, at det nu er 7 måder at tilføje en måned til en dato i MariaDB 🙂

DATE_ADD() Funktion

DATE_ADD() funktion giver dig mulighed for at tilføje et beløb til en dato. For eksempel kan du tilføje et antal dage, uger, måneder, år osv.

Eksempel:

SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);

Resultat:

+------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 MONTH) |
+------------------------------------------+
| 2021-06-01                               |
+------------------------------------------+

Hvis du har brug for at tilføje mere end én måned, skal du blot bruge det nummer i stedet for 1 . Men MONTH søgeord forbliver ikke-flertal uanset:

SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);

Resultat:

+------------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 2 MONTH) |
+------------------------------------------+
| 2021-07-01                               |
+------------------------------------------+

Det er også muligt at bruge en anden dato/tidsenhed med det passende nummer på den pågældende enhed. Derfor kan du angive et bestemt antal dage, såsom 30 eller 31.

Eksempel:

SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);

Resultat:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 31 DAY) |
+-----------------------------------------+
| 2021-06-01                              |
+-----------------------------------------+

Når man bruger dage, vil det afhænge af den pågældende måned, om det bliver præcis en måned eller ej. I ovenstående eksempel kunne jeg have givet 30 dage, men det ville have holdt os inden for samme måned:

SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);

Resultat:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 30 DAY) |
+-----------------------------------------+
| 2021-05-31                              |
+-----------------------------------------+

Så hvis du rent faktisk ønsker at tilføje en måned, så MONTH enhed er meget nemmere end at prøve at regne ud, hvor mange dage der skal tilføjes.

ADDDATE() Funktion

En anden måde at tilføje en måned til en dato på er at bruge ADDDATE() fungere. Denne funktion har to syntakser. En syntaks giver dig mulighed for at tilføje et antal dage til en dato. Den anden syntaks er den samme som med DATE_ADD() funktion ovenfor. Når du bruger denne syntaks, ADDDATE() er et synonym for DATE_ADD() .

Eksempel:

SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);

Resultat:

+-----------------------------------------+
| ADDDATE('2021-05-01', INTERVAL 1 MONTH) |
+-----------------------------------------+
| 2021-06-01                              |
+-----------------------------------------+

DATE_SUB() Funktion

DATE_SUB() funktionen giver dig mulighed for at fratrække et beløb til en dato. Men hvis du angiver en negativ værdi at trække fra, så ender den med at blive tillagt til datoen.

Eksempel:

SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);

Resultat:

+-------------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL -1 MONTH) |
+-------------------------------------------+
| 2021-06-01                                |
+-------------------------------------------+

SUBDATE() Funktion

SUBDATE() funktion er et synonym for DATE_SUB() når du bruger følgende syntaks.

Eksempel:

SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);

Resultat:

+------------------------------------------+
| SUBDATE('2021-05-01', INTERVAL -1 MONTH) |
+------------------------------------------+
| 2021-06-01                               |
+------------------------------------------+

+ Operatør

En anden mulighed er at bruge + operatør.

+ operatør bruges til at udføre tilføjelse, og vi kan bruge det på datoer sammen med den gældende dato/tidsenhed for at tilføje et bestemt antal måneder til vores dato.

Eksempel:

SELECT '2021-05-01' + INTERVAL 1 MONTH;

Resultat:

+---------------------------------+
| '2021-05-01' + INTERVAL 1 MONTH |
+---------------------------------+
| 2021-06-01                      |
+---------------------------------+

- Operatør

- operator kan bruges til at trække et beløb fra en dato. Men hvis det bruges til at trække et negativt tal fra, så er resultatet et positivt beløb, der lægges til datoen:

SELECT '2021-05-01' - INTERVAL -1 MONTH;

Resultat:

+----------------------------------+
| '2021-05-01' - INTERVAL -1 MONTH |
+----------------------------------+
| 2021-06-01                       |
+----------------------------------+

Bonus:ADD_MONTHS() Funktion

Siden jeg først skrev denne artikel, er en ny funktion blevet introduceret i MariaDB specifikt til at tilføje måneder til en dato.

Funktionen kaldes ADD_MONTHS() , og det blev introduceret i MariaDB 10.6.1 for at forbedre Oracle-kompatibiliteten.

Så jeg gætter på, at denne artikel skal hedde 7 måder at føje en måned til en dato på... 🙂

Eksempel:

SELECT ADD_MONTHS('2020-01-01', 3);

Resultat:

+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01                  |
+-----------------------------+

Andre dato- og tidsenheder

Ovenstående eksempler tilføjer et antal måneder til datoen, men vi kan bruge de samme teknikker til at tilføje enhver dato/tidsenhed. Se MariaDB dato- og tidsenheder for en komplet liste over dato-/tidsenheder, der kan bruges med ovenstående funktioner og operator.


  1. Se om en tabel har en DEFAULT Constraint i SQL Server ved hjælp af OBJECTPROPERTY()

  2. Hvad er formålet med datareplikering?

  3. SQLite-transaktion

  4. Ikke en gyldig måned under indsættelse af data i oracle