MariaDB udostępnia kilka sposobów wykonywania arytmetyki na datach. Obejmuje to dodawanie lub odejmowanie miesiąca (lub wielu miesięcy) od podanej daty.
Oto 6 sposobów na dodanie miesiąca do daty w MariaDB.
Aktualizacja bonusowa :Dodałem teraz siódmy sposób dodania miesiąca do daty na końcu tego artykułu. Więc myślę, że teraz jest 7 sposobów na dodanie miesiąca do daty w MariaDB 🙂
DATE_ADD()
Funkcja
DATE_ADD()
funkcja umożliwia dodanie kwoty do terminu. Na przykład możesz dodać liczbę dni, tygodni, miesięcy, lat itp.
Przykład:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);
Wynik:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Jeśli chcesz dodać więcej niż jeden miesiąc, po prostu użyj tego numeru zamiast 1
. Jednak MONTH
słowo kluczowe pozostaje w liczbie różnej niezależnie od:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);
Wynik:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 2 MONTH) | +------------------------------------------+ | 2021-07-01 | +------------------------------------------+
Możliwe jest również użycie innej jednostki daty/czasu z odpowiednim numerem tej jednostki. Dlatego możesz określić określoną liczbę dni, na przykład 30 lub 31.
Przykład:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);
Wynik:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 31 DAY) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
W przypadku używania dni to, czy okaże się, że będzie to dokładnie miesiąc, czy nie, będzie zależeć od danego miesiąca. W powyższym przykładzie mogłem podać 30 dni, ale to zatrzymałoby nas w tym samym miesiącu:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Wynik:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 30 DAY) | +-----------------------------------------+ | 2021-05-31 | +-----------------------------------------+
Jeśli więc rzeczywiście chcesz dodać miesiąc, to MONTH
jednostka jest znacznie prostsza niż próba obliczenia liczby dni do dodania.
ADDDATE()
Funkcja
Innym sposobem dodania miesiąca do daty jest użycie funkcji ADDDATE()
funkcjonować. Ta funkcja ma dwie składnie. Jedna składnia pozwala dodać do daty liczbę dni. Druga składnia jest taka sama jak w przypadku DATE_ADD()
funkcja powyżej. Używając tej składni, ADDDATE()
jest synonimem DATE_ADD()
.
Przykład:
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);
Wynik:
+-----------------------------------------+ | ADDDATE('2021-05-01', INTERVAL 1 MONTH) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
DATE_SUB()
Funkcja
DATE_SUB()
funkcja umożliwia odejmowanie kwota do daty. Jeśli jednak podasz wartość ujemną do odjęcia, zostanie ona dodana do daty.
Przykład:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);
Wynik:
+-------------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL -1 MONTH) | +-------------------------------------------+ | 2021-06-01 | +-------------------------------------------+
SUBDATE()
Funkcja
SUBDATE()
funkcja jest synonimem DATE_SUB()
używając następującej składni.
Przykład:
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);
Wynik:
+------------------------------------------+ | SUBDATE('2021-05-01', INTERVAL -1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
+
Operator
Inną opcją jest użycie +
operator.
+
Operator jest używany do dodawania i możemy go używać w datach, wraz z odpowiednią jednostką daty/godziny, aby dodać określoną liczbę miesięcy do naszej daty.
Przykład:
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Wynik:
+---------------------------------+ | '2021-05-01' + INTERVAL 1 MONTH | +---------------------------------+ | 2021-06-01 | +---------------------------------+
-
Operator
-
Operator może służyć do odejmowania kwoty od daty. Ale jeśli jest używany do odejmowania liczby ujemnej, wynikiem jest dodatnia kwota dodana do daty:
SELECT '2021-05-01' - INTERVAL -1 MONTH;
Wynik:
+----------------------------------+ | '2021-05-01' - INTERVAL -1 MONTH | +----------------------------------+ | 2021-06-01 | +----------------------------------+
Bonus:ADD_MONTHS()
Funkcja
Odkąd po raz pierwszy napisałem ten artykuł, w MariaDB została wprowadzona nowa funkcja, służąca do dodawania miesięcy do daty.
Funkcja nazywa się ADD_MONTHS()
, i został wprowadzony w MariaDB 10.6.1 w celu zwiększenia zgodności z Oracle.
Sądzę więc, że ten artykuł powinien nosić tytuł 7 sposobów na dodanie miesiąca do daty…
Przykład:
SELECT ADD_MONTHS('2020-01-01', 3);
Wynik:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Inne jednostki daty i czasu
Powyższe przykłady dodają liczbę miesięcy do daty, ale możemy użyć tych samych technik, aby dodać dowolną jednostkę daty/czasu. Zobacz jednostki daty i czasu MariaDB, aby uzyskać pełną listę jednostek daty/czasu, których można używać z powyższymi funkcjami i operatorem.