На PHP-сайтах иногда удобнее оперировать датой непосредственно в запросе MySQL. Это избавляет от необходимости обработки дат средствами PHP.
Рассмотрим функцию DATE_ADD в MySQL. Функция добавления даты позволяет получить дату, к которой прибавлен определенный период.
К примеру, рассмотрим таблицу из двух полей: id и date

В качестве пробной задачи будем использовать поиск строк, в которых дата отличается от текущей не более чем на полчаса.
Для решения задачи будем использовать функцию DATE_ADD
SELECT id,date FROM `table` WHERE date>DATE_ADD(NOW(),INTERVAL -30 MINUTE)
Синтаксис функции DATE_ADD MySQL следующий:
DATE_ADD(datetime, INTERVAL value unit), где
datetime — дата к которой будет прибавляться период;
value — величина которая будет прибавляться к исходной дате (использование отрицательных величин выполняет вычитание интервала от исходной даты);
unit — тип периода, может принимать одно из значений в таблице ниже
unit | Пример | Версия MqSQL |
---|---|---|
MICROSECOND | 4.1.1 | |
SECOND | 3.2.3 | |
MINUTE | 3.2.3 | |
HOUR | 3.2.3 | |
DAY | 3.2.3 | |
WEEK | 5 | |
MONTH | 3.2.3 | |
QUARTER | 5 | |
YEAR | 3.2.3 | |
SECOND_MICROSECOND | 12.000001 | 4.1.1 |
MINUTE_MICROSECOND | 3:12.000001 | 4.1.1 |
MINUTE_SECOND | 3:12 | 4.1.1 |
HOUR_MICROSECOND | 1:03:12.000001 | 4.1.1 |
HOUR_SECOND | 1:03:12 | 4.1.1 |
HOUR_MINUTE | 1:03 | 3.2.3 |
DAY_MICROSECOND | 12 4:12:15.000009 | 4.1.1 |
DAY_SECOND | 12 4:12:15 | 3.2.3 |
DAY_MINUTE | 12 4:12 | 3.2.3 |
DAY_HOUR | 12 4 | 3.2.3 |
YEAR_MONTH | 5-3 | 3.2.3 |