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

 

测试数据:

 

 

 

测试结果:

 

 

 

 

posted @ 2021-05-26 14:05  Ctrl`  阅读(278)  评论(0编辑  收藏  举报