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')
)
我在通过 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')
)