查询一个月内的过生日的用户列表
思路:
-
生日每年都有对应的一天,所以需要筛选的时候不能加上年 只能用 ”月-日“ 作为筛选条件
-
用 DATE_ADD(now(),interval 1 month) 获取当前时间的一个月后的时间
-
利用 DATE_FORMAT() 函数,把生日时间和当前时间以及一个月后时间 都改为相同的 ”月-日“ 的格式
-
然后利用between … and … 找出birthday在 当前时间”月-日“ - 一个月后时间 ”月-日“ 的结果集,就是想要的一个月内的过生日的用户列表了
例子:
select *
from user u
where DATE_FORMAT(u.birthday, '%m-%d')
BETWEEN DATE_FORMAT(now(), '%m-%d') and
DATE_FORMAT(DATE_ADD(now(),interval 1 month), '%m-%d')