1

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

4

3 回答 3

10

下面的查询选择当前时间和当前时间之间的所有行。因此,如果当前时间是10:11,它将选择当前日期内10:0010: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')

我测试了它并工作了。

于 2013-01-24T15:00:38.737 回答
6

首先想到的是:

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()
于 2013-01-24T14:56:33.357 回答
2
SELECT * FROM times WHERE t >= DATE_FORMAT(NOW(),'%Y-%m-%d %H:00:00');
于 2013-01-24T15:04:01.143 回答