【问题标题】:Mysql subtract two days from date_formatMysql 从 date_format 中减去两天
【发布时间】:2015-07-02 15:51:14
【问题描述】:

我想获取日期比当前日期大两天的所有记录。我只想比较月份和日期。 这是我尝试过的。

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

【问题讨论】:

  • 将 where 子句移至 select date_sub(date_format(Birthday,%m-%d),interval 2 day), Date_Format(curdate(),'%m-%d'); 并比较结果...看到什么了吗?
  • 我试过了。但是,它似乎没有返回任何东西

标签: mysql date compare


【解决方案1】:

Date_sub 函数需要一个日期。相反,您将一个从 date_format 函数获得的字符串传递给它。也许它试图将其恢复到最新状态。但它不应该。

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

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

【讨论】:

  • 是的..这有效..非常感谢!!
猜你喜欢
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2021-04-14
  • 2021-05-08
  • 1970-01-01
  • 2012-10-07
相关资源
最近更新 更多