MariaDB tillhandahåller flera sätt att utföra aritmetik på datum. Detta inkluderar att lägga till eller subtrahera en månad (eller många månader) från ett givet datum.
Här är 6 sätt att lägga till en månad till ett datum i MariaDB.
Bonusuppdatering :Jag har nu lagt till ett sjunde sätt att lägga till en månad till ett datum i slutet av den här artikeln. Så jag antar att det nu är 7 sätt att lägga till en månad till ett datum i MariaDB 🙂
DATE_ADD()
Funktion
DATE_ADD()
funktionen låter dig lägga till ett belopp till ett datum. Du kan till exempel lägga till ett antal dagar, veckor, månader, år etc.
Exempel:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);
Resultat:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Om du behöver lägga till mer än en månad, använd bara det numret istället för 1
. Men MONTH
sökord förblir icke-plural oavsett:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);
Resultat:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 2 MONTH) | +------------------------------------------+ | 2021-07-01 | +------------------------------------------+
Det är också möjligt att använda en annan datum-/tidsenhet med lämpligt nummer för den enheten. Därför kan du ange ett visst antal dagar, till exempel 30 eller 31.
Exempel:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);
Resultat:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 31 DAY) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
När du använder dagar, om det blir exakt en månad eller inte beror på månaden i fråga. I exemplet ovan kunde jag ha angett 30 dagar, men det skulle ha hållit oss inom samma månad:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Resultat:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 30 DAY) | +-----------------------------------------+ | 2021-05-31 | +-----------------------------------------+
Så om du faktiskt vill lägga till en månad, då MONTH
enhet är mycket enklare än att försöka räkna ut hur många dagar som ska läggas till.
ADDDATE()
Funktion
Ett annat sätt att lägga till en månad till ett datum är att använda ADDDATE()
fungera. Denna funktion har två syntaxer. En syntax låter dig lägga till ett antal dagar till ett datum. Den andra syntaxen är densamma som med DATE_ADD()
funktionen ovan. När du använder denna syntax, ADDDATE()
är en synonym för DATE_ADD()
.
Exempel:
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 låter dig subtrahera ett belopp till ett datum. Men om du anger ett negativt värde att subtrahera, slutar det med att det läggs till till datumet.
Exempel:
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 är en synonym för DATE_SUB()
när du använder följande syntax.
Exempel:
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);
Resultat:
+------------------------------------------+ | SUBDATE('2021-05-01', INTERVAL -1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
+
Operatör
Ett annat alternativ är att använda +
operatör.
+
operatören används för att utföra tillägg, och vi kan använda den på datum, tillsammans med tillämplig datum/tidsenhet för att lägga till ett visst antal månader till vårt datum.
Exempel:
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Resultat:
+---------------------------------+ | '2021-05-01' + INTERVAL 1 MONTH | +---------------------------------+ | 2021-06-01 | +---------------------------------+
-
Operatör
-
operator kan användas för att subtrahera ett belopp från ett datum. Men om det används för att subtrahera ett negativt tal, blir resultatet ett positivt belopp som läggs till datumet:
SELECT '2021-05-01' - INTERVAL -1 MONTH;
Resultat:
+----------------------------------+ | '2021-05-01' - INTERVAL -1 MONTH | +----------------------------------+ | 2021-06-01 | +----------------------------------+
Bonus:ADD_MONTHS()
Funktion
Sedan jag först skrev den här artikeln har en ny funktion introducerats i MariaDB specifikt för att lägga till månader till ett datum.
Funktionen heter ADD_MONTHS()
, och det introducerades i MariaDB 10.6.1 för att förbättra Oracle-kompatibiliteten.
Så jag antar att den här artikeln borde heta 7 sätt att lägga till en månad till ett datum... 🙂
Exempel:
SELECT ADD_MONTHS('2020-01-01', 3);
Resultat:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Andra datum- och tidsenheter
Exemplen ovan lägger till ett antal månader till datumet, men vi kan använda samma teknik för att lägga till valfri datum-/tidsenhet. Se MariaDB datum- och tidsenheter för en fullständig lista över datum-/tidsenheter som kan användas med ovanstående funktioner och operator.