От автора code.mu: РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
104 of 150 menu

Команда INTERVAL

Команда INTERVAL позволяет прибавлять к дате и отнимать от нее определенные промежутки времени.

После команды INTERVAL можно указывать определенную часть даты (день, месяц или год и тп), к примеру, так INTERVAL 1 DAY или INTERVAL 3 MONTH, или сразу несколько частей.

В этом случае значения даты берутся в кавычки, пример: давайте прибавим 1 год и 3 месяца - это будет выглядеть так: INTERVAL '1-3' YEAR_MONTH.

Мы указываем, что хотим год и месяц (вот так: YEAR_MONTH), и перед этим в кавычках пишем сначала значение для года, потом значение для месяца. Между ними ставим разделитель (он может быть абсолютно любым).

Синтаксис

Прибавление даты:

SELECT date_field + INTERVAL interval_value FROM table_name WHERE condition

Отнимание даты:

SELECT date_field - INTERVAL interval_value FROM table_name WHERE condition

Команды

Команда Описание
SECOND Секунды
MINUTE Минуты
HOUR Часы
DAY Дни
MONTH Месяцы
YEAR Годы
MINUTE_SECOND Минуты и секунды
HOUR_MINUTE Часы и минуты
DAY_HOUR Дни и часы
YEAR_MONTH Годы и месяцы
HOUR_SECOND Часы, минуты и секунды
DAY_MINUTE Дни, часы и минуты
DAY_SECOND Дни, часы, минуты и секунды

Таблицы для примеров

events
id name datetime_field
1 event 1 2010-03-01 12:40:50
2 event 2 2011-04-02 13:41:51
3 event 3 2012-05-03 14:42:52

Пример

Давайте при выборке из таблицы прибавим к дате 1 день:

SELECT *, datetime_field + INTERVAL 1 DAY AS new_date FROM events

Результат выполнения кода:

id name datetime_field new_date
1 event 1 2010-03-01 12:40:50 2010-03-02 12:40:50
2 event 2 2011-04-02 13:41:51 2011-04-03 13:41:51
3 event 3 2012-05-03 14:42:52 2012-05-04 14:42:52

Пример

Давайте отнимем от даты 1 день:

SELECT *, datetime_field - INTERVAL 1 DAY AS new_date FROM events

Результат выполнения кода:

id name datetime_field new_date
1 event 1 2010-03-01 12:40:50 2010-02-28 12:40:50
2 event 2 2011-04-02 13:41:51 2011-04-01 13:41:51
3 event 3 2012-05-03 14:42:52 2012-05-02 14:42:52

Пример

Давайте прибавим к дате 1 год и 2 месяца:

SELECT *, datetime_field + INTERVAL '1-2' YEAR_MONTH AS new_date FROM events

Результат выполнения кода:

id name datetime_field new_date
1 event 1 2010-03-01 12:40:50 2011-05-01 12:40:50
2 event 2 2011-04-02 13:41:51 2012-06-02 13:41:51
3 event 3 2012-05-03 14:42:52 2013-07-03 14:42:52

Смотрите также

  • функцию DATE_ADD,
    которая прибавляет значение к дате
  • функцию DATE_SUB,
    которая вычитает значение из даты
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить