在expyredate和now date之间使用datediff进行mysql查询

时间:2017-09-19 09:24:37

标签: mysql sql datediff

我在编写正确的SQL查询之前遇到一些问题,然后通过php文件为它编写正确的代码。

实际上我有一个表sql(tblperson),其中有一些人名(作为名称)和他们的生日日期(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))

我该如何解决?

1 个答案:

答案 0 :(得分:1)

由于年份组件,生日问题很棘手。以下是几乎的一种方法:

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')
      )