Mysql中的生日提醒功能在有的项目中或许会使用到,那么我最近在写项目中就遇到此类的问题 ,在网上寻遍以后找到一个相对合理的解决办法,那就是使用Mysql的datediff函数对日期进行加减,下面我把sql语句公布出来:
SELECT
ccu.custom_name as CustomName,
ccu.id as customId,
ccu.gender as sex,
DATE_FORMAT(ccu.birthday,"%Y/%m/%d") as birthday,
case when datediff(DATE_ADD(ccu.birthday,INTERVAL ceil(TIMESTAMPDIFF(MONTH,ccu.birthday,NOW())/12) YEAR),NOW()) < 0
then 365+datediff(DATE_ADD(ccu.birthday,INTERVAL ceil(TIMESTAMPDIFF(MONTH,ccu.birthday,NOW())/12) YEAR),NOW()) else datediff(DATE_ADD(ccu.birthday,INTERVAL ceil(TIMESTAMPDIFF(MONTH,ccu.birthday,NOW())/12) YEAR),NOW()) end as birthCountdown,
TIMESTAMPDIFF(YEAR,ccu.birthday, DATE_FORMAT(now(), “%Y-%m-%d”))+1 as yearLife,
ccu.phone as tel
FROM
cus_custom ccu
WHERE
ccu.user_id = “1072806378780889114” and ccu.birthday between “1980-10-12”
and “2000-10-22”
sql片段中的加粗部分就是计算用户生日倒计时的方法,为什么会用到sql的case when,是因为这一条sql语句下来会默认把当月已经过了的时间变成负数,也就是说用户在12月12日过生日,那么就会出现负的14天,我就把365加上负数算出当前用户距离下次生日的时间。欢迎各位评论
关于Mysql中的生日提醒
最新推荐文章于 2021-01-19 05:11:03 发布