MySQL-选择当前和未来11个月

时间:2018-07-08 11:01:55

标签: mysql timestamp

我的表items有一个date_due日期,该日期存储时间戳。 我尝试选择当月和下一个11个月(一年)中的每条记录

SELECT * FROM items WHERE MONTH(date_due) BETWEEN MONTH(CURRENT_DATE()) AND MONTH(CURRENT_DATE() INTERVAL 11 MONTH)

,但是不幸的是,这不起作用。也许有人可以帮忙吗?

这里是一个小提琴,直到我开始工作: http://sqlfiddle.com/#!9/16bd5/5

什么不起作用:我不知道如何将记录限制为“从今天起的下11个月,包括今天的月份”

1 个答案:

答案 0 :(得分:1)

您仅比较几个月就做错了。您还需要在哪里添加年份。

尝试下面的查询

SELECT * FROM item 
WHERE (YEAR(date_due)>YEAR(CURRENT_DATE()) OR (YEAR(date_due)>=YEAR(CURRENT_DATE()) AND MONTH(date_due)>=MONTH(CURRENT_DATE()))) 
AND (YEAR(date_due)<YEAR(DATE_ADD(CURRENT_DATE(), INTERVAL 11 MONTH)) OR (YEAR(date_due)<=YEAR(DATE_ADD(CURRENT_DATE(), INTERVAL 11 MONTH)) AND MONTH(date_due)<=MONTH(DATE_ADD(CURRENT_DATE(), INTERVAL 11 MONTH))))