我有这个查询,它输出过去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)
答案 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天,结束于午夜。