我需要从数据库表名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)";
我该怎么办?
答案 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;