Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL生日查询_Mysql - Fatal编程技术网

MYSQL生日查询

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`

所以我的问题是,选择接下来的三个生日,但是如果某个生日是在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` 
         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个出生日?您存储日期列的格式是什么?