有人可以帮我提高查询的准确性。
目前它从当前时间到昨天的时间总和。相反,我想要从今天00:00到23:59更精确的1天时间框架。
请保持代码简单。
谢谢
SELECT name, SUM(quantity)
FROM downloads d
WHERE date BETWEEN DATE_SUB( now() , INTERVAL 1 DAY ) AND NOW()
答案 0 :(得分:3)
你可以使用CURRENT_DATE()函数,它将返回今天的当前日期,没有时间信息:
SELECT name, SUM(quantity)
FROM downloads d
WHERE
date>=CURRENT_DATE()
AND date<CURRENT_DATE() + INTERVAL '1' DAY
请注意,您选择的name
列未汇总。您可能希望将其从SELECT中删除,或添加GROUP BY name
子句,但哪一个更好取决于您的意图。
我比WHERE DATE(date) = CURRENT_DATE()
更喜欢这个解决方案,因为我的解决方案可以使用索引并且具有更好的性能。