如何从时间戳获取日期范围?

时间:2014-02-17 15:07:56

标签: php mysql

我正在尝试显示过去7天内“浏览次数最多的产品”。

我的数据库是product_views,其中包含以下3个字段:

product_idIPViewStamp

邮票类型为timestamp,默认为CURRENT_TIMESTAMP。所以它们的格式如下:2014-02-02 22:24:54

如何对给定天数内行数/计数最多的product_id进行分组?我似乎无法远程纠正此查询。

感谢您的帮助。我希望我能正确解释这一点。

1 个答案:

答案 0 :(得分:0)

SELECT product_id, COUNT(1) as c 
FROM product_views
WHERE ViewStamp BETWEEN '2014-02-02 22:24:54' AND '2014-10-02 22:24:54'
GROUP BY product_id
ORDER BY c DESC
LIMIT 1

这将为您提供具有该范围的最大数量的产品ID

修改

  

是否可以让SQL显示最近7天而不是手动输入实际范围?

SELECT product_id, COUNT(1) as c 
FROM product_views
WHERE DATEDIFF(NOW(), ViewStamp) <= 7
GROUP BY product_id
ORDER BY c DESC
LIMIT 1