mysql 查询过期日期和现在日期之间的日期差异

mysql query with datediff between expyredate and now date

我在通过 php 文件编写正确代码执行查询之前正确编写 sql 查询时遇到一些问题。

实际上我有一个 table sql ( tblperson ),里面有一些人的名字 ( as name ) 和他们的生日 ( yy/mm/dd ),我需要查看那些人过去 15 天到今天过生日。

我尝试了一些不同的查询但没有成功:

SELECT name, birthday FROM tblperson 
WHERE  DATEDIFF(birthday,(SELECT DATE_SUB(NOW(), INTERVAL 15 DAY))


SELECT name, birthday  FROM tblperson 
WHERE  DATE(bb) = DATE_SUB(birthday,(NOW(), INTERVAL 15 DAY))

我该如何解决?

由于年份的原因,生日问题很棘手。这是 几乎 有效的一种方法:

select name, birthday
from tblperson 
where format(bb, '%m%d') <= format(curdate(), '%m%d') and
      format(bb, '%m%d') >= format(curdate() - interval 15 day, '%m%d');

问题是一年的前 15 天。这是一种明确处理该问题的方法:

select name, birthday
from tblperson 
where (format(curdate(), '%m%d') > '0115' and
       format(bb, '%m%d') <= format(curdate(), '%m%d') and
       format(bb, '%m%d') >= format(curdate() - interval 15 day, '%m%d')
      ) or
      (format(curdate(), '%m%d') < '0115' and
       format(bb + interval 15 day, '%m%d') <= format(curdate() + interval 15 day, '%m%d') and
       format(bb + interval 15 day, '%m%d') >= format(curdate(), '%m%d')
      )