从当前小时的开头获取行

时间:2013-01-24 14:53:57

标签: mysql sql datetime

我有数据存储在mySQL数据库中,我想要检索从现在到当前小时开始之间插入的行:不是在最后一小时,从小时开始。例如,在9:16我想要从9:00到现在的行。我的时间以数据时间格式存储。我怎么能这样做?

3 个答案:

答案 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');