2011-04-26 173 views
25

我在MySQL中遇到了一个问题。我想获得两个日期时间条目之间的记录数。
例如:
我的表中有一列名为'created'的数据类型为datetimemysql:获取两个日期时间之间的记录数

我想计算在“今日4:30 AM”和“当前日期时间”之间创建日期 - 时间的记录。

我尝试了一些MySQL的功能,但仍然没有运气。

你能帮我解决吗? 谢谢。

回答

56

可能有:

SELECT count(*) FROM `table` 
where 
    created_at>='2011-03-17 06:42:10' and created_at<='2011-03-17 07:42:50'; 

或使用between

SELECT count(*) FROM `table` 
where 
    created_at between '2011-03-17 06:42:10' and '2011-03-17 07:42:50'; 

您可以更改日期时间根据自己的需要。可以使用curdate()now()来获得所需的日期。

+10

请注意,订单事宜,你需要先写更小的日期时间,然后更大的日期时间 – Hafiz 2012-06-27 10:51:28

+0

如果日期和时间在单独的列上,该怎么办? – 2017-10-28 08:46:11

+0

在这种情况下,您需要结合使用日期和时间条件。例如,如果您想要在一天内过滤一段时间,则日期列将具有相同的条件以及条件之间的时间。在其他情况下,您可以在日期和时间之间过滤获取这些日期中的所有记录。 – 2017-10-30 07:05:57

5
select * from yourtable where created < now() and created > '2011-04-25 04:00:00' 
4
select * from yourtable 
    where created < now() 
    and created > concat(curdate(),' 4:30:00 AM') 
相关问题