发布网友
发布时间:2022-04-25 13:08
共2个回答
懂视网
时间:2022-04-10 14:25
1. 不跨年
例如: 查询2017-01-01到2017-01-20之间过生日的会员 (假定今天是2017-01-01则这种也可以描述为20天内过生日的会员)
select * from user where DATE_FORMAT(birthday,‘%m-%d‘) between ‘01-01‘ and ‘01-20‘
2. 跨年
例如: 查询2017-12-27到2018-01-05之间过生日的会员, (假定今天是2017-12-27则这种也可以描述为10天内过生日的会员)
这里取今年的起始时间与今年的最后一天做为1组条件,2017-12-27到2017-12-31; 取下年的第一天到下年的结束做为1组条件:2018-01-01到2018-01-05
select * from user where (DATE_FORMAT(birthday,‘%m-%d‘) between ‘12-27‘ and ‘12-31‘ OR DATE_FORMAT(birthday,‘%m-%d‘) between ‘01-01‘ and ‘01-05‘ )
分析了两种查询生日的情况, 还有一种情况是闰年生日的情况,留到下次再说.
抛砖引玉,大家有好的方案欢迎交流.
MySql查询生日的两种方式
标签:str where use mysql查询 post 需要 条件 log 方案
热心网友
时间:2022-04-10 11:33
这个题问题一般要提完整,别人才能回答,这里不知道你的表结构就很难给你弄。默认简单的在同一张表给你弄,select * from 表名 where 存储生日日期字段 = 你的生日。 这里存在数据库里的一般会是时间戳,你查询时把你生日转变成时间戳差就可以了