В MySQL можете да използвате DATE_ADD()
функция за добавяне на определен период от време към дата. Например, можете да го използвате, за да добавите 5 дни към дадена дата. Можете да посочите дали да добавите дни, седмици, месеци, тримесечия, години и т.н. Можете също да добавите стойност за време, като секунди, микросекунди и т.н.
Тази статия съдържа примери, които демонстрират как DATE_ADD()
функцията работи.
Синтаксис
Синтаксисът е така:
DATE_ADD(date,INTERVAL expr unit)
Пример 1 – Основна употреба
Ето пример за употреба.
SELECT DATE_ADD('2020-10-01', INTERVAL 20 DAY) AS Result;
Резултат:
+------------+ | Result | +------------+ | 2020-10-21 | +------------+
Този пример добавя 20 дни към датата, предоставена от първия аргумент.
Пример 2 – Други единици за дата
Можете да посочите мерните единици в дни, седмици, месеци, години и т.н. Ето някои примери.
SELECT '2020-10-01' AS 'Start Date', DATE_ADD('2020-10-01', INTERVAL 2 WEEK) AS '+2 Weeks', DATE_ADD('2020-10-01', INTERVAL 2 MONTH) AS '+2 Months', DATE_ADD('2020-10-01', INTERVAL 2 QUARTER) AS '+2 Quarters', DATE_ADD('2020-10-01', INTERVAL 2 YEAR) AS '+2 Years';
Резултат:
+------------+------------+------------+-------------+------------+ | Start Date | +2 Weeks | +2 Months | +2 Quarters | +2 Years | +------------+------------+------------+-------------+------------+ | 2020-10-01 | 2020-10-15 | 2020-12-01 | 2021-04-01 | 2022-10-01 | +------------+------------+------------+-------------+------------+
Пример 3 – Времеви единици
Можете също да добавите единици за време към стойност за дата/час. Ето един пример.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL 10 HOUR) AS Result;
Резултат:
+---------------------+ | Result | +---------------------+ | 2020-10-01 11:00:00 | +---------------------+
И можете да посочите няколко единици едновременно. Например, можете да посочите часове и минути. Като това.
SELECT DATE_ADD('2020-10-01 01:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Резултат:
+---------------------+ | Result | +---------------------+ | 2020-10-01 02:30: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 | „ГОДИНИ-МЕСЕЦИ“ |
Можете също да използвате ADDDATE()
функция, за да направи същото (това е синоним на DATE_ADD()
функция при използване на същия синтаксис). В допълнение, синтаксисът на ADDDATE()
има втора форма, която е стенографски метод за добавяне на определен брой дни към дата. За повече информация вижте ADDDATE() Примери в MySQL.