1

我想运行一个 mysql 来查找上午 9 点到 10 点之间的所有结果。

我希望它找到所有结果,无论它是哪一天。我可以找到某一天的结果,但不是所有结果

4

5 回答 5

3

DateTime对象作为列,只需使用内置函数来提取小时:

SELECT *
FROM table t
WHERE HOUR(t.DateTimeColumn) >= 9 AND HOUR(t.DateTimeColumn) <= 22

或者

SELECT *
FROM table t
WHERE HOUR(t.DateTimeColumn) BETWEEN 9 AND 22

看:

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_hour

于 2013-09-24T12:24:04.763 回答
1
SELECT ...
FROM ...
WHERE TIME(datetime column) BETWEEN '09:00' AND '10:00';
于 2013-09-24T12:26:31.870 回答
1

您可以使用 hour() 函数来完成此操作。

它会是这样的:

select *
from table
where hour(timestamp_col) >= 9
and hour(timestamp_col) <= 10;

http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_hour

于 2013-09-24T12:24:05.950 回答
1

你需要使用过滤器where hour(yourtimestampcolumn) between 9 and 10

between 9 and 22晚上 10 点

于 2013-09-24T12:24:22.303 回答
-1

如果日期是这样存储的,这也将对您有所帮助:-'2013-09-18 11:47:12'

SELECT * FROM `users` WHERE substr(created,12,8) > '09:00:00' and substr(created,12,8) < '10:00:00'
于 2013-09-24T12:37:58.677 回答