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

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

MariaDB предоставя няколко начина за добавяне на година или определен брой години към дадена дата. Например, може да искате да добавите 1 година, 10 години, 30 години и т.н.

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

DATE_ADD() Функция

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

Пример:

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

Резултат:

+-----------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 1 ГОДИНА) |+---------------------------------- -------+| 2022-05-01 |+-------------------------------------------------+ 

Няма правило, което да гласи, че може да бъде само 1 година. Можете да добавите няколко години. Така или иначе, YEAR ключовата дума остава не в множествено число:

SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR); 

Резултат:

+------------------------------------+| DATE_ADD('2021-05-01', ИНТЕРВАЛ 10 ГОДИНИ) |+---------------------------------- --------+| 2031-05-01 |+--------------------------------------------------+ 

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

Пример:

SELECT 
    DATE_ADD('2021-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2021-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2021-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2021-05-01', INTERVAL 1 YEAR) AS Years; 

Резултат:

+------------+------------+-----------+------- -----+| Дни | седмици | Месеци | Години |+------------+------------+-----------+-------- ----+| 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 |+------------+-----------+------------+----- --------+

В този случай добавянето на 52 седмици има различен резултат от използването на 365 дни, 12 месеца и 1 година.

Ако преместим датата с няколко години напред, получаваме още повече непоследователност:

SELECT 
    DATE_ADD('2023-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2023-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2023-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2023-05-01', INTERVAL 1 YEAR) AS Years; 

Резултат:

+------------+------------+-----------+------- -----+| Дни | седмици | Месеци | Години |+------------+------------+-----------+-------- ----+| 30.04.2024 | 2024-04-29 | 2024-05-01 | 2024-05-01 |+------------+-----------+------------+----- --------+

Този път с помощта на MONTH и YEAR връща същия резултат, но DAY и WEEK връща две различни дати, като и двете са различни от MONTH и YEAR резултати.

ADDDATE() Функция

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

Пример:

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

Резултат:

+---------------------------------------+| ADDDATE('2021-05-01', ИНТЕРВАЛ 1 ГОДИНА) |+---------------------------------- ------+| 2022-05-01 |+-------------------------------------------------+ 

DATE_SUB() Функция

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

Пример:

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

Резултат:

+------------------------------------+| DATE_SUB('2021-05-01', ИНТЕРВАЛ -1 ГОДИНА) |+-------------------------------- ---------+| 2022-05-01 |+--------------------------------------------------+ 

SUBDATE() Функция

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

Пример:

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

Резултат:

+-----------------------------------+| SUBDATE('2021-05-01', ИНТЕРВАЛ -1 ГОДИНА) |+-------------------------------- --------+| 2022-05-01 |+-------------------------------------------------+ 

+ Оператор

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

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

Пример:

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

Резултат:

+--------------------------------+| '2021-05-01' + ИНТЕРВАЛ 1 ГОДИНА |+--------------------------------+| 2022-05-01 |+--------------------------------+

- Оператор

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

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

Резултат:

+--------------------------------+| '2021-05-01' - ИНТЕРВАЛ -1 ГОДИНА |+--------------------------------+| 2022-05-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. Обяснение на оператора MariaDB UNION

  2. Как да стартирате PHP 5 приложения с MySQL 8.0 на CentOS 7

  3. Какво е MariaDB? Как работи MariaDB?

  4. Защита на MySQL - Използване на привилегии за достъп до данни за сигурна инсталация

  5. Повишаване на производителността чрез използване на разделяне на четене и запис на трафик от базата данни с Moodle 3.9