我想按周,月和年获取数据。
我存储日期YYYY-MM-DD HH:MM:SS。
我正在做的是下面的事情;
获取一周的数据;
query + AND WEEK(date) = WEEK(CURDATE())
获取一个月前的数据;
query + AND MONTH(date) = MONTH(CURDATE())
问题是我无法正确获取数据。例如,当我想获得一周的数据时,我也开始一岁。
我可以使用其他任何查询吗?我试过了DATE(NOW()) - INTERVAL 30 DAY
。它工作但很慢。
谢谢!
答案 0 :(得分:0)
WHERE ...
AND date >= CURDATE() - INTERVAL 7 DAY
AND date < CURDATE()
给你7天以昨天结束。使用其他技术来获得特定的月份或周。
对于具有合适索引的大型表,此技术也快得多。将date
隐藏在函数内部(例如WEEK()
)会阻止使用索引。