关于Mysql中的生日提醒

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加上负数算出当前用户距离下次生日的时间。欢迎各位评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值