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

时间:2013-08-09 02:57:08

标签: mysql sql

我正在尝试计算数据库中在X小时或X天内插入的表中的行。我曾多次尝试,但我一直得到空集。

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

我尝试了很多变化: select * from mytable where start_stamp = now()interval -1 day;

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

2 个答案:

答案 0 :(得分:3)

不是选择start_stamp 等于的行到now() - 1day,而是需要大于或等于该范围的行。此外,您的语法有点偏差。 MySQL的日期算术使用column_value - INTERVAL <number> <period>,因此您需要:

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文档中描述in a small paragraph beneath the DATE_ADD() function reference

答案 1 :(得分:1)

以下是一些例子......

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

select * from mytable where start_stamp >= now() - interval 6 hour;

过去2天内的所有参赛作品:

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

过去2 1/2天内的所有参赛作品:

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