Добавить 2 часа к текущему времени в MySQL?

Какой правильный синтаксис этого запроса в MySQL?

SELECT * FROM courses WHERE (now() + 2 hours) > start_time

примечание: start_time - это поле таблицы курсов

5 ответов

Решение
SELECT * 
FROM courses 
WHERE DATE_ADD(NOW(), INTERVAL 2 HOUR) > start_time

См. Функции даты и времени для других манипуляций с датой и временем.

Вам нужно DATE_SUB() ИЛИ DATE_ADD()

SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time

Функция DATE_ADD() сделает свое дело. (Вы также можете использовать функцию ADDTIME(), если вы работаете по крайней мере v4.1.1.)

Для вашего запроса это будет:

SELECT * 
FROM courses 
WHERE DATE_ADD(now(), INTERVAL 2 HOUR) > start_time

Или же,

SELECT * 
FROM courses 
WHERE ADDTIME(now(), '02:00:00') > start_time

Это также будет работать - ВЫБЕРИТЕ ИМЯ из GEO_LOCATION, ГДЕ MODIFY_ON МЕЖДУ SYSDATE() - ИНТЕРВАЛ 2 ЧАСА И SYSDATE ()

Другие вопросы по тегам