PHP查询,获取过去7天的结果(“完整”天)

时间:2011-08-27 10:08:43

标签: sql

我有这个查询,它输出过去7天每天的行数。 我如何改变它,所以我只能“完整的日子”?意思是:今天的结果不计算在内(因为今天不是“完成”)。

SELECT date(downloaddate), COUNT(id) AS num_downloads, 
       SUM(filesize) AS daily_filesize
FROM downloads 
WHERE downloaddate > now() - INTERVAL 1 WEEK 
GROUP BY date(downloaddate)

2 个答案:

答案 0 :(得分:3)

使用curdate()。与now()不同,它不包含时间,因此您有效地将downloaddate与今天的日期与'00:00:00'(一天的开始)的时间进行比较。

即。

SELECT date(downloaddate), COUNT(id) AS num_downloads, 
    SUM(filesize) AS daily_filesize 
FROM downloads 
WHERE downloaddate < CURDATE() 
    AND downloaddate > CURDATE() - INTERVAL 1 WEEK 
GROUP BY date(downloaddate)

答案 1 :(得分:2)

您已使用date()获取日期部分。将其用于where子句,或使用curdate()作为date(now())的简写,如:

WHERE    downloaddate BETWEEN curdate()
                      AND curdate() - INTERVAL 1 WEEK)

这将持续整整7天,结束于午夜。