- SELECT username, birthday
FROM test_birthday
WHERE date_format( birthday, '%m%d' )
BETWEEN date_format( now( ) , '%m%d' )
AND date_format( date_add( now( ) , INTERVAL 120
DAY ) , '%m%d' )
LIMIT 0 , 30
用这个解决了
- select * from test_birthday where (( DATE_FORMAT(birthday, '%m%d')+0)-( DATE_FORMAT(curdate(), '%m%d')+0)) <= 30;
- 自行解决就好
SELECT username, birthday
FROM test_birthday
WHERE DATE_FORMAT( birthday, '%m%d' )
BETWEEN DATE_FORMAT(CURDATE()-INTERVAL 30 DAY,'%m%d')
AND DATE_FORMAT(CURDATE()+INTERVAL 30 DAY,'%m%d')
LIMIT 0 , 30;