日期间隔不起作用

时间:2017-11-27 14:34:03

标签: mysql sql mariadb

我想按周,月和年获取数据。

我存储日期YYYY-MM-DD HH:MM:SS。

我正在做的是下面的事情;

获取一周的数据;

query + AND WEEK(date) = WEEK(CURDATE())

获取一个月前的数据;

query + AND MONTH(date) = MONTH(CURDATE())

问题是我无法正确获取数据。例如,当我想获得一周的数据时,我也开始一岁。

我可以使用其他任何查询吗?我试过了DATE(NOW()) - INTERVAL 30 DAY。它工作但很慢。

谢谢!

1 个答案:

答案 0 :(得分:0)

WHERE ...
  AND date >= CURDATE() - INTERVAL 7 DAY
  AND date  < CURDATE()

给你7天以昨天结束。使用其他技术来获得特定的月份或周。

对于具有合适索引的大型表,此技术也快得多。将date隐藏在函数内部(例如WEEK())会阻止使用索引。