从今天开始第6个月获取过去的数据

时间:2019-05-14 07:44:25

标签: mysql

如何从今天起第6个月前准确获取数据?

例如。现在是2019年5月,我希望确切的数据是6个月前的2018年12月。

所以我尝试编写以下代码:

SELECT * from table WHERE MONTH(UpdatedDate) = MONTH(CURDATE() - INTERVAL 5 MONTH);

问题:这向我显示了所有年份的结果,其中包含特定月份。 (例如; 2014年12月,2015年12月,2016年12月,依此类推)。

因此,从尝试解决问题开始,我一直认为这是因为我需要确保确定年份。但是,在我的示例中,不能将年份设置为当前年份,因为6个月前的2019年5月的结果是2018年12月。

因此,我想问一下如何编写它,以便我可以在6个月前获得数据。

2 个答案:

答案 0 :(得分:3)

尝试此查询。

SELECT * from table WHERE MONTH(UpdatedDate) = MONTH(CURDATE() - INTERVAL 5 MONTH) AND YEAR(UpdatedDate) = YEAR(CURDATE() - INTERVAL 5 MONTH);

查询的问题是您仅基于月份的搜索数据,因此获得了所有年份的数据。

尝试按上述查询中的说明获取年份和月份的数据。

答案 1 :(得分:1)

您还可以:

SELECT * FROM table 
WHERE DATE_FORMAT(UpdatedDate,'%Y-%m')=DATE_FORMAT(CURDATE()-INTERVAL 5 MONTH,'%Y-%m');