我想获得所有日期比当前日期大两天的记录。我只想比较一个月和一天。 这就是我的尝试。
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
答案 0 :(得分:2)
Date_sub函数需要一个日期。相反,你传递一个从date_format函数获得的字符串。也许它试图把它重新投入使用。但它不应该。
相反,您应首先执行日期算术,然后转换为字符串:
where date_format(date_sub(Birthday,interval 2 day),'%m-%d') = Date_Format(curdate(),'%m-%d')