MySQL Query获取2个月前的所有行

时间:2016-12-02 09:46:46

标签: mysql sql

我需要做一个选择,我可以选择查看当月,上个月,1个月前,2个月前,3个月前的结果。

我发现了这个问题:MySQL: Query to get all rows from previous month,但我遇到了一个过滤器,它会在2个月前从本月的第一天到最后一天为我提供所有结果。

我试过这个,但它不起作用:

PlaceHolder1.Controls.Add(myPanel); //add the panel to the placeholderenter code here
myPanel.Controls.Add(myRadioButton); //add the radiobutton to the panel

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * FROM table
WHERE MONTH(date_created) = MONTH(NOW() - INTERVAL 2 MONTH)
    AND (
          YEAR(date_created) = YEAR(NOW()) 
        OR 
          YEAR(date_created) = YEAR(NOW() - INTERVAL 2 MONTH)
    );

仅在MySQL中返回过去2个月内创建的记录。

答案 1 :(得分:0)

SELECT * FROM table
AND MONTH(date_created) = MONTH(DATE_SUB(NOW(),INTERVAL 2 MONTH))

答案 2 :(得分:0)

如果你想要2个月之前的所有行,那么使用这样的逻辑:

WHERE date_created >= DATE_SUB(DATE_SUB(CURDATE(), 1 - DAY(CURDATE())), INTERVAL 2 MONTH) AND
      date_created < DATE_SUB(DATE_SUB(CURDATE(), 1 - DAY(CURDATE())), INTERVAL 1 MONTH)

这是做什么的?首先,它只将函数应用于表达式的当前日期部分。这允许MySQL在date_created上使用索引(如果可用且适当的话)。

表达式DATE_SUB(CURDATE(), 1 - DAY(CURDATE())只是获得该月第一天的一种方式。