我在数据库中有一个表,其中某个日期字段的格式为yyyy-mm-dd
我试图执行一个查询,从今天开始只记录3个月的记录。
我已经这样做了
WHERE DATE_SUB(myTable.myField, INTERVAL 3 MONTH) = CURDATE()
并且它有效,但我的第二步是忽略我的日期字段和curdate()的年份。
我已尝试过EXTRACT
或DATEFORMAT
,但查询并未使用这些功能。
如何修改我的查询?
由于
答案 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)