通过用户身份证信息查询用户最近的生日日期

SELECT
IF (
DATE_FORMAT(
SUBSTRING(a.id_card, 7, 8),
'%m-%d'
) >= DATE_FORMAT(now(), '%m-%d'),
DATE_FORMAT(
CONCAT(
YEAR (now()),
SUBSTRING(a.id_card, 11, 4)
),
'%Y-%m-%d'
),
DATE_FORMAT(
CONCAT(
YEAR (DATE_ADD(now(), INTERVAL 1 YEAR)),
SUBSTRING(a.id_card, 11, 4)
),
'%Y-%m-%d'
)
) AS birthday,
a.id_card
FROM
bs_user a
WHERE
a.id_card IS NOT NULL
AND a.is_bind_name = 1
LIMIT 20;

原文地址:https://www.cnblogs.com/anye-15068156823/p/8745002.html