我需要做一个选择,我可以选择查看当月,上个月,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
答案 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())
只是获得该月第一天的一种方式。