I have a timestamp column that auto updates on insert/update.
I want to get the rows that have been updated within the last 10 minutes.
SELECT
*
FROM
status
WHERE
code='myCode'
AND
'stamp_updated'
BETWEEN
NOW()
AND
DATE_ADD(NOW() , INTERVAL - 10 MINUTE)
ORDER BY
stamp_updated DESC
LIMIT 1
SELECT col1, col2, col3 FROM table WHERE DATE_ADD(last_seen, INTERVAL 10 MINUTE) >= NOW();
select *from yourTableName where yourColumnName between 'yourStartingDate' and curdate().
Use:
SELECT *
FROM status
WHERE code = 'myCode'
AND `stamp_updated` BETWEEN DATE_SUB(NOW() , INTERVAL 10 MINUTE)
AND NOW()
ORDER BY stamp_updated DESC
LIMIT 1
Order in the BETWEEN operator matters - you had it backwards.
... 'stamp_updated' BETWEEN NOW() - INTERVAL 10 MINUTE AND NOW() ...
Not sure why you're using the between construct. MySQL can use logical operators on dates, and usually significantly faster. I would use this:
select *
from status
where code='myCode'
and stamp_updated >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
order by stamp_updated desc
limit 1;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With