如何在一段时间之间制作sql?

时间:2012-05-10 12:48:28

标签: mysql

我的数据库记录部分显示如下,我想使用sql在每天的一段时间内获取记录。 比如我想在下面的记录中得到01:00 - 03:00,我希望得到2004/8/7 01:542004/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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您可以使用MySQL HOUR()

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

SELECT * 
FROM your_table 
WHERE HOUR(your_date_field) > 1 AND HOUR(your_date_field) < 3