Dodać 2 godziny do aktualnego czasu w MySQL?

176

Jaka jest prawidłowa składnia tego zapytania w MySQL?

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

uwaga: czas_początku to pole tabeli kursów

Ei Maung
źródło

Odpowiedzi:

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

Zobacz Funkcje daty i czasu, aby dowiedzieć się więcej o manipulowaniu datą / czasem.

Glavić
źródło
29
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time
Daniël van Eeden
źródło
25

Funkcja DATE_ADD () załatwi sprawę . (Możesz także użyć funkcji ADDTIME (), jeśli używasz wersji co najmniej 4.1.1.)

W przypadku Twojego zapytania będzie to:

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

Lub,

SELECT * 
FROM courses 
WHERE ADDTIME(now(), '02:00:00') > start_time
lc.
źródło
Gdyby tylko były przykłady.
TMS
Dokumentacja ma kilka dobrych przykładów (a SO nie ma zastępować dokumentacji) .. Ale w interesie tego pytania i przyszłych odwiedzających, dodałem obie składnie.
lc.
1

To też zadziała

SELECT NAME 
FROM GEO_LOCATION
WHERE MODIFY_ON BETWEEN SYSDATE() - INTERVAL 2 HOUR AND SYSDATE()
Soumyajit Swain
źródło