生日提醒--还有多久生日(mysql)

考虑两点:
1. 年底时,倒计时
2. 闰年2月29日出生的

针对以上,首先获取今年和来年的生日日期,今年生日过了则计算下一年生日距离今天多少天;闰年2月29生日的,设在非闰年时2月28日过生日,恰巧,mysql默认没有29号时取28号。

SELECT
    datediff(
        IF (cur >= today, cur, next),-- 今年的生日是否已过
        today
        ) last
    FROM
        (
            SELECT
                today,
                date_add(BIRTHDAY, INTERVAL diff YEAR) cur,-- 今年生日日期
                date_add(BIRTHDAY,INTERVAL diff + 1 YEAR) next-- 第二年生日日期
                FROM
                (
                    SELECT
                        BIRTHDAY,
                        (YEAR (now()) - YEAR (e.BIRTHDAY)) diff,-- 年龄(周岁)
                        str_to_date(date_format(now(), '%Y-%m-%d'),'%Y-%m-%d') AS today-- 今日
                    FROM
                        person_info e
                ) AS a
        ) AS b
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值