1

我的数据库记录部分如下所示,我想使用 sql 来获取每天一段时间之间的记录。比如我想进入01:00 - 03:00下面的记录,我希望得到2004/8/7 01:54,,2004/8/11 02:41我该怎么办?谢谢:)

2004/8/7 01:54
2004/8/7 16:44
2004/8/7 22:26
2004/8/9 16:26
2004/8/9 16:26
2004/8/9 18:36
2004/8/9 18:36
2004/8/9 18:36
2004/8/9 18:36
2004/8/10 23:22
2004/8/10 23:23
2004/8/11 02:41
2004/8/12 21:05
4

2 回答 2

3

HOUR()功能为您提供一天中的时间。剩下的很简单:

select * from mytable
where (hour(datetime_column) between 1 and 2
  or (hour(datetime_column) = 3 
    and minute(datetime_column) = 0
    and second(datetime_column) = 0))

编辑:

请注意,hour(datetime_column) between 1 and 2匹配... 01:00:00... 02:59:59,其余的匹配剩余的一秒 - 完全匹配03:00:00

于 2012-05-10T12:53:49.407 回答
1

您可以使用 MySQL HOUR()

MySQLHOUR()返回时间的小时。对于时间值,返回值在 0 到 23 的范围内。时间值的范围可能大于 23。

SELECT * 
FROM your_table 
WHERE HOUR(your_date_field) > 1 AND HOUR(your_date_field) < 3
于 2012-05-10T12:53:41.533 回答