我现在正在处理的网站上有一个仪表板,显示各个用户在上周输入的数据。我使用一个简单的WHERE子句选择这个数据:
SELECT * FROM table WHERE WEEK(date, 1) = WEEK(CURDATE(), 1) - 1
然而,新年即将到来,当用户试图查看仪表板时,例如1月3日或4日,我的代码显然会给我一个错误的结果,因为上周的数字是2010年是52.那么,改变我的查询以考虑年度变化的最佳方法是什么。而且,选择2周,3周,4周......之前输入的数据会很酷。
答案 0 :(得分:3)
如何选择七天前的WEEK
?
WHERE WEEK(date, 1) = WEEK(CURDATE() - INTERVAL 1 WEEK, 1)
这样您可以选择2,3,4周前输入的数据:
WHERE WEEK(date, 1) = WEEK(CURDATE() - INTERVAL 2 WEEK, 1)
答案 1 :(得分:-1)
为什么你不能使用:
WHERE date between date_add(CurDate() - INTERVAL 1 WEEK) and CurDate()