Mysql 从 date_format 中减去两天
Mysql subtract two days from date_format
我想获取所有日期比当前日期大两天的记录。我只想比较月份和日期。
这是我试过的。
select * from reminder where date_sub(date_format(Birthday,%m-%d),interval 2 day)=Date_Format(curdate(),'%m-%d');
但是它return没有任何记录。
例如,它应该 return 所有日期如下的记录:
1977-07-04
1984-07-04
1989-07-04
1995-07-04
Date_sub 函数需要一个日期。相反,您将一个从 date_format 函数获得的字符串传递给它。也许它试图将其恢复到最新状态。但它不应该必须。
相反,您应该先执行日期运算,然后再转换为字符串:
where date_format(date_sub(Birthday,interval 2 day),'%m-%d') = Date_Format(curdate(),'%m-%d')
我想获取所有日期比当前日期大两天的记录。我只想比较月份和日期。 这是我试过的。
select * from reminder where date_sub(date_format(Birthday,%m-%d),interval 2 day)=Date_Format(curdate(),'%m-%d');
但是它return没有任何记录。
例如,它应该 return 所有日期如下的记录:
1977-07-04
1984-07-04
1989-07-04
1995-07-04
Date_sub 函数需要一个日期。相反,您将一个从 date_format 函数获得的字符串传递给它。也许它试图将其恢复到最新状态。但它不应该必须。
相反,您应该先执行日期运算,然后再转换为字符串:
where date_format(date_sub(Birthday,interval 2 day),'%m-%d') = Date_Format(curdate(),'%m-%d')