我有数据存储在mySQL数据库中,我想检索从现在到当前小时开始之间插入的行:不是在一小时开始以来的最后一小时。例如,在 9:16 我想要从 9:00 到现在的行。我的时间以数据时间格式存储。我该怎么做?
下面的查询选择当前小时和当前时间之间的所有行。因此,如果当前时间为 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')
我测试了它并工作了。
首先想到的是:
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()
SELECT * FROM times WHERE t >= DATE_FORMAT(NOW(),'%Y-%m-%d %H:00:00');