我有这个查询,它输出过去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)
使用curdate()
。与now()
不同,它不包括时间,因此您可以有效地将downloaddate
与时间为'00:00:00'(一天的开始)的今天日期进行比较。
ie。
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)
您已经使用date()
来获取日期部分。将它的用法扩展到where
子句中,或者使用curdate()
作为date(now())
的简写,如:
WHERE downloaddate BETWEEN curdate()
AND curdate() - INTERVAL 1 WEEK)
这将占用整整7天,直到昨晚午夜。