计算mysql数据库中时间戳在X间隔内的行数

计算mysql数据库中时间戳在X间隔内的行数,mysql,sql,Mysql,Sql,我试图统计数据库中表中在X小时或X天内插入的行数。我已经试了很多次了,但是我总是得到空泛的回答 我的表格中的start_stamp列的格式如下:2013-08-07 18:18:37 我在以下方面尝试了许多变化: 从mytable中选择*,其中start_stamp=now()间隔-1天 但一切都无济于事。有人能告诉我我做错了什么吗?与其选择start\u stamp等于now()-1day的行,不如选择大于或等于该范围的行。此外,您的语法有点不正确。MySQL的日期算法使用列\u值-INTER

我试图统计数据库中表中在X小时或X天内插入的行数。我已经试了很多次了,但是我总是得到空泛的回答

我的表格中的start_stamp列的格式如下:2013-08-07 18:18:37

我在以下方面尝试了许多变化: 从mytable中选择*,其中start_stamp=now()间隔-1天


但一切都无济于事。有人能告诉我我做错了什么吗?

与其选择
start\u stamp
等于
now()-1day
的行,不如选择大于或等于该范围的行。此外,您的语法有点不正确。MySQL的日期算法使用
列\u值-INTERVAL
,因此您需要:

SELECT COUNT(*) AS num_new_rows
FROM mytable
WHERE start_stamp >= NOW() - INTERVAL 1 DAY
同样,要在n小时前获取,请使用
INTERVAL n HOUR

# Within 3 hours...
WHERE start_stamp >= NOW() - INTERVAL 3 HOUR

官方MySQL文档中描述了日期间隔算法的语法。

以下是一些示例

过去6小时内的所有参赛作品:

select * from mytable where start_stamp >= now() - interval 6 hour;
过去2天内的所有参赛作品:

select * from mytable where start_stamp >= now() - interval 2 day;
过去2个半工作日内的所有条目:

select * from mytable where start_stamp >= now() - interval 2 day - interval 12 hour;

您的查询有什么问题?
start\u stamp
的类型是什么?
start\u stamp
列上的索引将帮助执行此查询。