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

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

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

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

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

最佳答案
而不是选择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.

转载注明原文:计算mysql数据库中的行,其中X时间间隔内的时间戳 - 代码日志