MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

6 sposobów na dodanie miesiąca do daty w MariaDB

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 6 typowych scenariuszy awarii dla MySQL i MariaDB oraz jak je naprawić

  2. Jak działa funkcja CONCAT_WS() w MariaDB

  3. Jak działa LENGTH() w MariaDB

  4. Równoważenie obciążenia bazy danych z ProxySQL i AWS Aurora

  5. Wiele opóźnionych urządzeń podrzędnych replikacji do odzyskiwania po awarii przy niskim RTO