Вычитание и добавление периода к дате
28.08.2013
ADD SUB
Итак, начнём сразу с примера, давайте выберем из таблицы comments, все комментарии добавленные за последние 7 дней.
Тут всё просто, нам поможет функция DATE_SUB(), она принимает 2 параметра:
- дату от которой будем вычитать;
- количество дней/недель/месяцев и т.д. вычитаем из этой даты.
Т.е. в нашем варианте итоговый запрос получится следующего вида:
SELECT * FROM `comments` WHERE `created` >= DATE_SUB(NOW(), INTERVAL 7 DAY)
или
SELECT * FROM `comments` WHERE `created` >= DATE_SUB(NOW(), INTERVAL 1 WEEK)
Однако, тут мы получим результат с точностью до секунды. Т.е. так мы найдём комментарии добавленные 7 суток назад с учётом времени, если нам важна только дата, то немного изменим итоговый запрос:
SELECT * FROM `comments` WHERE `created` >= date(DATE_SUB(NOW(), INTERVAL 7 DAY))
Аналогично, для прибавления какого либо периода, используется функция DATE_ADD()