2 Stunden zur aktuellen Zeit in MySQL hinzufügen?

175

Welches ist die gültige Syntax dieser Abfrage in MySQL?

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

Hinweis: start_time ist ein Feld der Kurstabelle

Ei Maung
quelle

Antworten:

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

Siehe Datums- und Zeitfunktionen für andere Datum / Zeit - Manipulation.

Glavić
quelle
45

Sie benötigen DATE_SUB () ODER DATE_ADD ()

Sergii
quelle
24
Wenn es nur Beispiele gäbe.
Richard
29
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time
Daniël van Eeden
quelle
25

Die Funktion DATE_ADD () erledigt den Trick. (Sie können auch die Funktion ADDTIME () verwenden, wenn Sie mindestens Version 4.1.1 ausführen.)

Für Ihre Anfrage wäre dies:

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

Oder,

SELECT * 
FROM courses 
WHERE ADDTIME(now(), '02:00:00') > start_time
lc.
quelle
Wenn es nur Beispiele gäbe.
TMS
Die Dokumentation enthält einige gute Beispiele (und SO ist kein Ersatz für die Dokumentation). Im Interesse dieser Frage und zukünftiger Besucher habe ich beide Syntaxen hinzugefügt.
lc.
1

Dies wird auch funktionieren

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