Ajouter 2 heures à l'heure actuelle dans MySQL?

177

Quelle est la syntaxe valide de cette requête dans MySQL?

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

note: start_time est un champ de la table des cours

Ei Maung
la source

Réponses:

45

Vous avez besoin de DATE_SUB () OU DATE_ADD ()

Sergii
la source
24
Si seulement il y avait des exemples.
Richard
29
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time
Daniël van Eeden
la source
25

La fonction DATE_ADD () fera l'affaire. (Vous pouvez également utiliser la fonction ADDTIME () si vous exécutez au moins v4.1.1.)

Pour votre requête, ce serait:

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.
la source
Si seulement il y avait des exemples.
TMS
La documentation a quelques bons exemples (et SO n'est pas censé remplacer la documentation). Mais dans l'intérêt de cette question et des futurs visiteurs, j'ai ajouté les deux syntaxes.
lc.
1

Cela fonctionnera également

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