Add 2 hours to current time in MySQL?
Asked Answered
P

5

210

Which is the valid syntax of this query in MySQL?

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

note: start_time is a field of courses table

Persuade answered 26/2, 2009 at 8:31 Comment(0)
A
397
SELECT * 
FROM courses 
WHERE DATE_ADD(NOW(), INTERVAL 2 HOUR) > start_time

See Date and Time Functions for other date/time manipulation.

Aric answered 26/2, 2009 at 8:41 Comment(0)
E
52

You need DATE_SUB() OR DATE_ADD()

Expunction answered 26/2, 2009 at 8:34 Comment(1)
If only there were examples.Rotarian
S
34
SELECT * FROM courses WHERE (NOW() + INTERVAL 2 HOUR) > start_time
Scepter answered 11/10, 2011 at 12:51 Comment(0)
G
29

The DATE_ADD() function will do the trick. (You can also use the ADDTIME() function if you're running at least v4.1.1.)

For your query, this would be:

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

Or,

SELECT * 
FROM courses 
WHERE ADDTIME(now(), '02:00:00') > start_time
Gird answered 26/2, 2009 at 8:35 Comment(2)
If only there were examples.Spider
The documentation has some good examples (and SO is not meant to be a replacement for the documentation).. But in the interest of this question and future visitors, I have added both syntaxes.Gird
M
1

This will also work

SELECT NAME 
FROM GEO_LOCATION
WHERE MODIFY_ON BETWEEN SYSDATE() - INTERVAL 2 HOUR AND SYSDATE()
Mcloughlin answered 12/8, 2016 at 10:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.