从数据库中查找即将到来的生日

时间:2016-04-02 12:21:11

标签: mysql

我需要从数据库表名users和列名u_bday中找到即将到来的生日,其中u_bday是varchar格式。 我试过这个,但不能帮助我。

$sql=" SELECT `f_name`,`u_bday` FROM  `users` 
       WHERE  DATE_ADD(`u_bday`, INTERVAL YEAR(CURDATE())-YEAR(`u_bday`)+  
              IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(u_bday),1,0) YEAR)  
       BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)";

我该怎么办?

2 个答案:

答案 0 :(得分:1)

使用此函数将varcher列转换为日期格式

str_to_date(  fieldname, '%Y-%m-%d') 

答案 1 :(得分:0)

您可以使用date_diff功能,查询可能类似于下面的内容

SELECT `f_name`,`u_bday` FROM  `users` 
WHERE  DATE_DIFF(`u_bday`, now()) > 1 
ORDER BY u_bday asc;