从日期字段mysql中仅提取月和日

时间:2016-09-07 09:22:23

标签: mysql date

我在数据库中有一个表,其中某个日期字段的格式为yyyy-mm-dd

我试图执行一个查询,从今天开始只记录3个月的记录。

我已经这样做了

WHERE DATE_SUB(myTable.myField, INTERVAL 3 MONTH) = CURDATE()

并且它有效,但我的第二步是忽略我的日期字段和curdate()的年份。

我已尝试过EXTRACTDATEFORMAT,但查询并未使用这些功能。

如何修改我的查询?

由于

2 个答案:

答案 0 :(得分:1)

条件错误。

请改为尝试:

...WHERE myTable.myField >= CURDATE() - INTERVAL 3 MONTH...

修改

根据您的评论:

  

我的查询我已经获得了dateField这个日期的所有记录   ' 2016年12月7日' (curdate()今天是2016-09-07')而且没关系。但是我   希望该查询还给我一个月有12个月和07月的日期   一天,无视一年。例如。如果我有2016-12-07' ' 2014-12-07',我的   查询必须给我两个记录。它是一个每天都会运行的查询

...WHERE DATE_FORMAT(myTable.myField,'%m-%d') = 
    DATE_FORMAT((CURDATE() + INTERVAL 3 MONTH),'%m-%d')...

答案 1 :(得分:0)

使用以下条件,将从今天起查找间隔为3个月的记录。

WHERE myTable.myField = DATE_SUB(CURDATE(), INTERVAL 3 MONTH)