Функция DATE_SUB (она же SUBDATE) отнимает от даты определенный промежуток времени.

Промежуток времени, который нужно отнять, задается в том же формате, что и для команды INTERVAL (смотрите ее для лучшего понимания).

См. также функцию DATE_ADD, с помощью которой можно прибавлять даты.

Синтаксис

SELECT DATE_SUB(дата, INTERVAL что_отнять) FROM имя_таблицы WHERE условие

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
date
дата
1 Дима 2010-03-01 12:01:02
2 Петя 2011-04-02 13:02:03
3 Вася 2012-05-03 14:03:04

Пример

В данном примере от даты отнимается 1 день:

SELECT *, DATE_SUB(date, 1 DAY) as new_date FROM workers

SQL запрос выберет следующие строки:

id
айди
name
имя
date
дата
new_date
новая дата
1 Дима 2010-03-01 12:01:02 2010-02-28 12:01:02
2 Петя 2011-04-02 13:02:03 2011-05-01 13:02:03
3 Вася 2012-05-03 14:03:04 2012-06-02 14:03:04