我在数据库中有一个表,其中一些日期字段的格式为yyyy-mm-dd
我正在尝试执行一个查询,该查询仅记录从今天开始的3个月的记录 .
我这样做了
WHERE DATE_SUB(myTable.myField, INTERVAL 3 MONTH) = CURDATE()
它有效,但我的第二步是忽略我的日期字段和curdate()的年份 .
我已经尝试了 EXTRACT 或 DATEFORMAT ,但查询不适用于这些功能 .
EXTRACT
DATEFORMAT
我该如何修改我的查询?
谢谢
条件错了 .
试试这个:
...WHERE myTable.myField >= CURDATE() - INTERVAL 3 MONTH...
EDIT:
根据您的评论:
我的查询我已经在dateField中记录了这个日期'2016-12-07'(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')...
使用以下条件,将从今天起查找间隔为3个月的记录 .
WHERE myTable.myField = DATE_SUB(CURDATE(), INTERVAL 3 MONTH)
2 回答
条件错了 .
试试这个:
...WHERE myTable.myField >= CURDATE() - INTERVAL 3 MONTH...
EDIT:
根据您的评论:
使用以下条件,将从今天起查找间隔为3个月的记录 .