MariaDB
 sql >> база данни >  >> RDS >> MariaDB

6 начина да добавите месец към дата в MariaDB

MariaDB предоставя няколко начина за извършване на аритметика на дати. Това включва добавяне или изваждане на месец (или много месеци) от дадена дата.

Ето 6 начина да добавите месец към дата в MariaDB.

Бонус актуализация :Сега добавих 7-ми начин за добавяне на месец към дата в края на тази статия. Така че предполагам, че сега има 7 начина да добавите месец към дата в MariaDB 🙂

DATE_ADD() Функция

DATE_ADD() функцията ви позволява да добавите сума към дата. Например можете да добавите няколко дни, седмици, месеци, години и т.н.

Пример:

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

Резултат:

+------------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 1 МЕСЕЦ) |+---------------------------------- --------+| 2021-06-01 |+--------------------------------------------------+ 

Ако трябва да добавите повече от един месец, просто използвайте това число вместо 1 . Въпреки това, MONTH ключовата дума остава не в множествено число, независимо:

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

Резултат:

+------------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 2 МЕСЕЦА) |+---------------------------------- --------+| 2021-07-01 |+--------------------------------------------------+ 

Възможно е също да използвате друга единица за дата/час с подходящия номер на тази единица. Следователно можете да посочите определен брой дни, като 30 или 31.

Пример:

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

Резултат:

+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 31 ДЕН) |+---------------------------------- -------+| 2021-06-01 |+-------------------------------------------------+ 

Когато използвате дни, дали ще се окаже точно месец или не, ще зависи от въпросния месец. В горния пример можех да предвидя 30 дни, но това би ни запазило в рамките на същия месец:

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

Резултат:

+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 30 ДЕН) |+---------------------------------- -------+| 31.05.2021 |+-------------------------------------------------+ 

Така че, ако всъщност искате да добавите месец, тогава MONTH единица е много по-лесно, отколкото да се опитвате да определите колко дни да добавите.

ADDDATE() Функция

Друг начин да добавите месец към дата е да използвате ADDDATE() функция. Тази функция има два синтаксиса. Един синтаксис ви позволява да добавите няколко дни към дата. Другият синтаксис е същият като при DATE_ADD() функция по-горе. Когато използвате този синтаксис, ADDDATE() е синоним на DATE_ADD() .

Пример:

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

Резултат:

+-----------------------------------+| ADDDATE('2021-05-01', ИНТЕРВАЛ 1 МЕСЕЦ) |+---------------------------------- -------+| 2021-06-01 |+-------------------------------------------------+ 

DATE_SUB() Функция

DATE_SUB() функцията ви позволява да изваждате сума към дата. Ако обаче предоставите отрицателна стойност за изваждане, тя накрая се добавя до датата.

Пример:

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

Резултат:

+------------------------------------+| DATE_SUB('2021-05-01', ИНТЕРВАЛ -1 МЕСЕЦ) |+-------------------------------- ----------+| 2021-06-01 |+--------------------------------------------------- +

SUBDATE() Функция

SUBDATE() функцията е синоним на DATE_SUB() когато използвате следния синтаксис.

Пример:

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

Резултат:

+------------------------------------+| SUBDATE('2021-05-01', ИНТЕРВАЛ -1 МЕСЕЦ) |+-------------------------------- ---------+| 2021-06-01 |+--------------------------------------------------+ 

+ Оператор

Друга възможност е да използвате + оператор.

+ Операторът се използва за извършване на добавяне и можем да го използваме за дати, заедно с приложимата единица дата/час, за да добавим определен брой месеци към нашата дата.

Пример:

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

Резултат:

+--------------------------------+| '2021-05-01' + ИНТЕРВАЛ 1 МЕСЕЦ |+--------------------------------+| 01.06.2021 |+--------------------------------+

- Оператор

- Операторът може да се използва за изваждане на сума от дата. Но ако се използва за изваждане на отрицателно число, резултатът е положителна сума, добавена към датата:

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

Резултат:

+---------------------------------+| '2021-05-01' - ИНТЕРВАЛ -1 МЕСЕЦ |+----------------------------------+| 01.06.2021 |+---------------------------------+

Бонус:ADD_MONTHS() Функция

Откакто за първи път написах тази статия, в MariaDB беше въведена нова функция специално за добавяне на месеци към дата.

Функцията се нарича ADD_MONTHS() , и беше въведен в MariaDB 10.6.1, за да подобри съвместимостта с Oracle.

Така че предполагам, че тази статия трябва да се нарича 7 начина да добавите месец към дата... 🙂

Пример:

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

Резултат:

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

Други единици за дата и час

Горните примери добавят няколко месеца към датата, но можем да използваме същите техники, за да добавим всяка единица дата/час. Вижте Мерките за дата и час в MariaDB за пълен списък с единици за дата/час, които могат да се използват с горните функции и оператор.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравнение на висока наличност на база данни - MySQL / MariaDB репликация срещу Oracle Data Guard

  2. Как работи ROUND() в MariaDB

  3. MariaDB JSON_QUOTE() Обяснено

  4. MariaDB JSON_ARRAY_APPEND() Обяснено

  5. MariaDB CURRENT_TIME() Обяснено