mysql根据身份证号过滤生日并提前N天查询相应信息
需求:根据身份证号过滤生日字段。并提前7天查询出用户信息(eg:在2021-05-26当天 要查询出2021-06-02当天过生日的用户)
测试版本:mysql5.7。
先贴完整sql语句:
SELECT * FROM ( SELECT `name`, card_no cardNo, cast(substring(card_no, 7, 8) AS date) birthday, DATE_FORMAT(cast(substring(card_no, 7, 8) AS date),'%m-%d') birth FROM `user` ) u WHERE DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL - 7 DAY),'%m-%d') = u.birth
测试数据:
测试结果: