Mysql从date_format减去两天

时间:2015-07-02 15:51:15

标签: mysql date compare

我想获得所有日期比当前日期大两天的记录。我只想比较一个月和一天。 这就是我的尝试。

select * from reminder where date_sub(date_format(Birthday,%m-%d),interval 2 day)=Date_Format(curdate(),'%m-%d');

但它不会返回任何记录。

例如,它应该返回所有日期的记录,如:

1977-07-04
1984-07-04
1989-07-04
1995-07-04

1 个答案:

答案 0 :(得分:2)

Date_sub函数需要一个日期。相反,你传递一个从date_format函数获得的字符串。也许它试图把它重新投入使用。但它不应该。

相反,您应首先执行日期算术,然后转换为字符串:

 where date_format(date_sub(Birthday,interval 2 day),'%m-%d') = Date_Format(curdate(),'%m-%d')