我有数据存储在mySQL数据库中,我想要检索从现在到当前小时开始之间插入的行:不是在最后一小时,从小时开始。例如,在9:16我想要从9:00到现在的行。我的时间以数据时间格式存储。我怎么能这样做?
答案 0 :(得分:7)
下面的查询选择当前小时和当前时间之间的所有行。因此,如果当前时间 10:11 ,它将在当前日期内选择 10:00 和 10:11 之间的所有行。
SELECT *
FROM Test
WHERE mytime BETWEEN DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00')
AND DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
我测试过并且工作过。
答案 1 :(得分:5)
首先想到的是:
select *
from t
where date(now() ) = date(t.timeval) and
hour(now() ) = hour(t.timeval)
我假设你没有数据中的未来记录。如果是这样,那么我会想到:
select *
from t
where date(now() ) = date(t.timeval) and
hour(now() ) = hour(t.timeval) and
timeval < now()
答案 2 :(得分:2)
SELECT * FROM times WHERE t >= DATE_FORMAT(NOW(),'%Y-%m-%d %H:00:00');