В MySQL можете да използвате ADDDATE()
функция за добавяне на определен период от време към дата. Например, можете да го използвате, за да добавите 10 дни към дадена дата. Можете да посочите дали да добавите дни, седмици, месеци, тримесечия, години и т.н. Можете също да добавите стойност за време, като секунди, микросекунди и т.н.
ADDDATE()
функцията е синоним на DATE_ADD()
функция (и двете правят едно и също нещо), когато използвате първия синтаксис, изброен по-долу.
Тази статия съдържа примери за демонстриране на използването на ADDDATE()
функция.
Синтаксис
Можете да използвате тази функция по следните два начина:
ADDDATE(date,INTERVAL expr unit)
Или
ADDDATE(expr,days)
Пример 1 – Първият синтаксис
Ето пример за използване на първата форма на синтаксиса.
SELECT ADDDATE('2018-12-01', INTERVAL 2 DAY) AS Result;
Резултат:
+------------+ | Result | +------------+ | 2018-12-03 | +------------+
Този пример добавя 2 дни към датата, предоставена от първия аргумент.
Пример 2 – Вторият синтаксис
Този пример може да бъде пренаписан до следното:
SELECT ADDDATE('2018-12-01', 2) AS Result;
Резултат:
+------------+ | Result | +------------+ | 2018-12-03 | +------------+
Това използва втората форма на синтаксиса. Вторият аргумент е цяло число, което представлява колко дни трябва да се добавят към датата, предоставена от първия аргумент. Така че очевидно този формуляр е подходящ само ако искате да посочите сумата в дни.
Обърнете внимание, че ADDDATE()
е синоним на DATE_ADD()
само когато се използва първият синтаксис. Вторият синтаксис е достъпен само в ADDDATE()
.
Пример 3 – Други единици за дата
Едно от предимствата на първата форма на синтаксиса е, че можете да укажете дали да добавяте дни, седмици, месеци, години и т.н. Ето някои примери.
SELECT '2018-12-01' AS 'Start Date', ADDDATE('2018-12-01', INTERVAL 2 WEEK) AS '+2 Weeks', ADDDATE('2018-12-01', INTERVAL 2 MONTH) AS '+2 Months', ADDDATE('2018-12-01', INTERVAL 2 QUARTER) AS '+2 Quarters', ADDDATE('2018-12-01', INTERVAL 2 YEAR) AS '+2 Years';
Резултат:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2018-12-01 | 2018-12-15 | 2019-02-01 | 2019-06-01 | 2020-12-01 | +------------+------------+------------+-------------+------------+
Пример 4 – Времеви единици
Можете също да използвате ADDDATE()
за добавяне на единици за време към стойност за дата/час. Ето един пример.
SELECT ADDDATE('2018-12-01 01:00:00', INTERVAL 2 HOUR) AS Result;
Резултат:
+---------------------+ | Result | +---------------------+ | 2018-12-01 03:00:00 | +---------------------+
Очаквани стойности
Следващата таблица показва валидните стойности на единици и техния очакван формат.
unit Стойност | Очакван expr Формат |
---|---|
МИКРОСЕКУНДА | МИКРОСЕКУНДИ |
ВТОРА | СЕКУНДИ |
МИНУТА | МИНУТИ |
ЧАС | ЧАСА |
ДЕН | ДНИ |
СЕДМИЦА | СЕДМИЦИ |
МЕСЕЦ | МЕСЕЦИ |
Квартал | ЧЕТВЕРТИРИ |
ГОДИНА | ГОДИНИ |
SECOND_MICROSECOND | ‘SECONDS.MICROSECONDS’ |
MINUTE_MICROSECOND | ‘MINUTES:SECONDS.MICROSECONDS’ |
MINUTE_SECOND | „МИНУТИ:СЕКУНДИ“ |
HOUR_MICROSECOND | „ЧАСОВЕ:МИНУТИ:СЕКУНДИ.МИКРОСЕКУНДИ“ |
HOUR_SECOND | „ЧАСОВЕ:МИНУТИ:СЕКУНДИ“ |
HOUR_MINUTE | „ЧАСОВЕ:МИНУТИ“ |
DAY_MICROSECOND | ‘ДНИ ЧАСОВЕ:МИНУТИ:СЕКУНДИ.МИКРОСЕКУНДИ’ |
DAY_SECOND | „ДНИ ЧАСОВЕ:МИНУТИ:СЕКУНДИ“ |
DAY_MINUTE | „ДНИ ЧАСА:МИНУТИ“ |
DAY_HOUR | „ДНИ ЧАСА“ |
YEAR_MONTH | „ГОДИНИ-МЕСЕЦИ“ |