首页 > 解决方案 > 如何仅使用日期和月份搜索生日日期

问题描述

我一直在社区中寻找解决方案,但没有找到任何具体的解决方案。我需要只使用月份和月份日期(不包括年份)在一段时间内搜索生日。我有用户在我的 MySQL 的日期字段中注册了他们的生日。

Name | Dt. Birth
Julian | 1990/01/18
Luiz | 2000/02/15
Morgana | 1973/02/01

我需要实现两个不同的任务。

1st - 假设今天的日期是 2 月 1 日。我怎么能把今天的日期减少 14 天,搜索生日在前 2 周的用户?(只有 Julian 会被列出)。

另一个查询将列出今天生日的用户(仅列出 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;


2nd - 在一个表格中,我将选择两天和月份
|01||January |
|15||February|
,并且将列出生日在此范围内的用户。(列出所有用户)

也许这个小提琴可以帮助你想象这个问题。http://www.sqlfiddle.com/#!9/1dec7a/5
我重现了上面显示一些不准确的查询。如果您更改值(-14/+14 和(-1/+1),您将能够列出用户。

标签: phpmysqlsqlformsdate

解决方案


推荐阅读