mysql前7天内,MySQL在事件发生前7天和事件发生后7天选择

我有数据库,其中包含生日和用户名称日期.我想选择从7天前到7天生日/名字日的所有用户此选择工作,但我不知道如何解决有生日/名字日31.12的用户的问题.例如.

PHP将返回“用户生日前3天”,此选项仅在年底前7天和新年后7天内正常运行.非常感谢你的帮助.

SELECT `name`, `surname`, `gender`, ('birthday') AS event,

DATEDIFF(NOW(), DATE(REPLACE(`birthday`, YEAR(`birthday`), YEAR(NOW())))) AS diff

FROM `users`

WHERE DATEDIFF(NOW(), DATE(REPLACE(`birthday`, YEAR(`birthday`), YEAR(NOW()))))

BETWEEN -7 AND 7

UNION

SELECT `name`, `surname`, `gender`, ('namesday') AS event,

DATEDIFF(NOW(), DATE(REPLACE(`namesday`, YEAR(`namesday`), YEAR(NOW())))) AS diff

FROM `users`

WHERE DATEDIFF(NOW(), DATE(REPLACE(`namesday`, YEAR(`namesday`), YEAR(NOW()))))

BETWEEN -7 AND 7

最佳答案 好问题.

这就是我到目前为止所做的.我不确定它是否完美但它可能是一个好的开始.试试看.

select *,

if(right(birthday,5)>=right(curdate(),5),concat(year(curdate()),'-',right(birthday,5)),concat(year(curdate()+interval 1 year),'-',right(birthday,5))) as next_birthday,

if(right(birthday,5)

from users

having next_birthday

between curdate() - interval 7 day and curdate() + interval 7 day

or prev_birthday

between curdate() - interval 7 day and curdate()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值