大家好,我想问一个关于如何查询最近生日的用户的语句,谢谢!
user表中birthday字段是date,数据库是mysql
我想实现:从表中查询出当前时间5天内生日的用户~并且按照时间顺序排列~即生日距离现在越近的排越前~
百度了一下,看了些关于日期时间函数的方法~自己拼了一句出来
select * from user where (MONTH(birthday) between 1 and 2) and (DAYOFMONTH(birthday) between 1 and 10) order by DAYOFYEAR(birthday);
我知道上面的语句是不行的,想问问大家是如何实现的呢~帮帮忙,谢谢~
user表中birthday字段是date,数据库是mysql
我想实现:从表中查询出当前时间5天内生日的用户~并且按照时间顺序排列~即生日距离现在越近的排越前~
百度了一下,看了些关于日期时间函数的方法~自己拼了一句出来
select * from user where (MONTH(birthday) between 1 and 2) and (DAYOFMONTH(birthday) between 1 and 10) order by DAYOFYEAR(birthday);
我知道上面的语句是不行的,想问问大家是如何实现的呢~帮帮忙,谢谢~
这句更接近,但是结果还是不行~
生日查询,查询几天内过生日的人员的SQL语句
select *
from user
where abs(DAYOFYEAR(birthday) - DAYOFYEAR(CURDATE())) <= 5
order by abs(DAYOFYEAR(birthday) - DAYOFYEAR(CURDATE()));如果要考虑2月是28天还是29天的问题,则需要在where条件里加case when 判断
把用户的生日birthday的年份替换成今年的年份,月和日部分不变,然后这个新日期与当前日期相减,绝对值小于等于5有空再搞点测试数据试试
你好,真是非常巧,你的想法和我一样,而且我也按照这个想法做出来了~太巧了~!!!!
select * from user where to_days(concat(year(curDate()), date_format(birthday, '%m%d'))) - to_days(curDate()) between 0 and 25;