SUBDATE
Вычитает из даты временной интервал или количество дней.
MySQL 8.4
SUBDATE(date, INTERVAL expr unit | days)- a | bодин из вариантов
- date
- Исходная дата или дата со временемDATE
- INTERVAL expr unit
- Вычитаемый интервал, например INTERVAL 10 DAY
- expr
- Сколько единиц вычесть
- unit
- Единица интервалаКлючевое словоMICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
- days
- Количество дней — краткая запись вместо INTERVALINT
Возвращаемое значение
Дата, если из даты вычитаются дни или более крупные единицы, иначе дата со временем; если такого дня в месяце нет, берётся последний день месяца
Примеры
Десять дней назад от даты
MySQL 8.4
SELECT SUBDATE('2022-06-16', INTERVAL 10 DAY) AS new_date;Краткая форма с числом дней
MySQL 8.4
SELECT SUBDATE('2022-06-16', 10) AS new_date;Составная единица интервала
MySQL 8.4
SELECT SUBDATE('2022-06-16', INTERVAL '1 12' DAY_HOUR) AS new_date;Подробности
Вместо функции интервал можно прибавить или вычесть оператором: date + INTERVAL 7 DAY. В PostgreSQL такой функции нет, дату сдвигают тем же оператором, но интервал пишут строкой: date + INTERVAL '7 days'.