我正在尝试按周,月和年获取数据。
我存储日期YYYY-MM-DD HH:MM:SS。
我在做什么下面。
取得一个星期的旧资料;
query + AND WEEK(date) = WEEK(CURDATE())
获取一个月的数据;
query + AND MONTH(date) = MONTH(CURDATE())
问题是我无法正确获取数据。例如,当我想获取一周的数据时,我也就一岁。
还有其他我可以使用的查询吗?我已经尝试过
DATE(NOW()) - INTERVAL 30 DAY
。它可以工作,但是非常慢。谢谢!
最佳答案
我认为问题在于WEEK
函数返回一年中的星期。因此,2017年1月1日可能是第1周(也可能是上一年的第53周,具体取决于一周中的星期几以及MySQL的处理方式)。但是,2016年1月1日也是第1周-只是不同的一年。
尝试将其更改为:
query + AND WEEK(date) = WEEK(CURDATE()) AND YEAR(date) = YEAR(CURDATE())
另外,如果您将其存储为字符串,则必须将其更改为
DATETIME
关于mysql - 日期间隔无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47513403/