Adicionar 2 horas à hora atual no MySQL?

176

Qual é a sintaxe válida desta consulta no MySQL?

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

nota: start_time é uma tabela de campos de cursos

Ei Maung
fonte

Respostas:

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

Consulte Funções de data e hora para outras manipulações de data / hora.

Glavić
fonte
45

Você precisa de DATE_SUB () OU DATE_ADD ()

Sergii
fonte
24
Se ao menos houvesse exemplos.
Richard
29
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time
Daniël van Eeden
fonte
25

A função DATE_ADD () fará o truque. (Você também pode usar a função ADDTIME () se estiver executando pelo menos a v4.1.1.)

Para sua consulta, isso seria:

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

Ou,

SELECT * 
FROM courses 
WHERE ADDTIME(now(), '02:00:00') > start_time
lc.
fonte
Se ao menos houvesse exemplos.
TMS
A documentação possui alguns bons exemplos (e o SO não deve ser um substituto para a documentação). Mas, no interesse desta pergunta e de futuros visitantes, adicionei as duas sintaxes.
lc.
1

Isso também vai funcionar

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