我一直在社区寻找解决方案,但我没有找到任何具体的解决方案。我只需要使用月和月(不包括年份)搜索一段时间内的生日。我的用户在我的MySQL中的日期字段中注册了他们的生日。
Name | Dt. Birth
Julian | 1990/01/18
Luiz | 2000/02/15
Morgana | 1973/02/01
我需要实现两个不同的任务。
第一 - 我们假设今天的日期是2月1日。我今天的日期如何,减少14天,搜索过去2周过生日的用户? (只列出朱利安)。
另一个查询将列出今天生日的用户(仅列出Morgana)。
第三个应该在接下来的两周内列出生日(仅列出Luiz) 我正在使用这些代码,但它们似乎一直都不起作用。
select * from user where DAYOFYEAR(dateBirth) between DAYOFYEAR(CURDATE())-14 and DAYOFYEAR(CURDATE())-1;
select * from user where DAYOFYEAR(dateBirth) = DAYOFYEAR(CURDATE());
select * from user where DAYOFYEAR(dateBirth) between DAYOFYEAR(CURDATE())+1 and DAYOFYEAR(CURDATE())+14;
第二次 - 在表单中,我会选择两天和几个月
|01||January |
|15||February|
和生日的用户在此范围内将列出。 (列出所有用户)
也许这个小提琴帮助您想象这个问题。 http://www.sqlfiddle.com/#!9/1dec7a/5
我重现上面显示一些不准确的查询。如果更改值(-14 / + 14和(-1 / + 1),您应该能够列出用户。