MYSQL生日查询
所以我的问题是,选择接下来的三个生日,但是如果某个生日是在4月12日。4月1日一到,生日就不再显示了MYSQL生日查询,mysql,Mysql,所以我的问题是,选择接下来的三个生日,但是如果某个生日是在4月12日。4月1日一到,生日就不再显示了 SELECT `users`.`name`, Date_format(`users_detail`.`dob_date`, '%d') AS day, Date_format(`users_detail`.`dob_date`, '%M') AS month FROM `users_detail` JOIN `users`
SELECT `users`.`name`,
Date_format(`users_detail`.`dob_date`, '%d') AS day,
Date_format(`users_detail`.`dob_date`, '%M') AS month
FROM `users_detail`
JOIN `users`
ON `users`.`id` = `users_detail`.`id`
WHERE Date_add(`users_detail`.`dob_date`,
INTERVAL Year( Curdate() )- Year(`users_detail`.`dob_date`) + IF(
Dayofyear(
Curdate() ) >= Dayofyear(`users_detail`.`dob_date`), 1, 0 ) year)
BETWEEN Curdate() AND Date_add(Curdate(), INTERVAL 11 month)
ORDER BY `users_detail`.`dob_date` ASC
LIMIT 3
你能试试这个吗
SELECT `users`.`name`
FROM `users_detail`
WHERE DATE_ADD(`users_detail`.`dob_date`,
INTERVAL YEAR(CURDATE())-YEAR(`users_detail`.`dob_date`)
+ IF(DAYOFYEAR(CURDATE()) > DAYOFYEAR(`users_detail`.`dob_date`),1,0)
YEAR)
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 11 month)
ORDER BY `users_detail`.`dob_date` ASC
LIMIT 3
您正在尝试选择用户接下来的3个出生日?您存储日期列的格式是什么?