Добавить 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

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

Это тоже сработает

SELECT NAME 
FROM GEO_LOCATION
WHERE MODIFY_ON BETWEEN SYSDATE() - INTERVAL 2 HOUR AND SYSDATE()

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

Функция DATE_ADD () сделает свое дело. (Вы также можете использовать функцию ADDTIME (), если у вас установлена ​​версия не ниже 4.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
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time