我的专栏DOB
有dob
个人,并以(y-m-d)
格式存储。我想知道今天的出生日期是什么。
我曾尝试date(y-m-d)
,但它只显示了今天的日期结果。
即如果我的数据库中有2018-2-20
为dob
,那么它将显示在我的结果中但是如果有1995-2-20
这个日期没有显示为结果所以基本上我只想显示谁&#今天是生日。
答案 0 :(得分:2)
您可以尝试这样
MySQL查询:
SELECT *
FROM
YourTable
WHERE
DATE_FORMAT(BirthDayField,'%m-%d') = DATE_FORMAT(NOW(),'%m-%d')
此查询将您的desired date
和current date
转换为m(month)-d(day)
格式并进行比较
注意:此处
的列名BirthDayField
是数据类型为DATE
有关MySQL DATE_FORMAT功能
的详细信息答案 1 :(得分:0)
你可以这样写
SELECT *
FROM persons
WHERE DATE_ADD(birthday,
INTERVAL YEAR(CURDATE())-YEAR(birthday)
+ IF(DAYOFYEAR(CURDATE()) >= DAYOFYEAR(birthday),1,0)
YEAR)
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 0 DAY);
我认为这有助于您吸引今天过夜的用户。
答案 2 :(得分:0)
首先获取当前日期。
$query = sprintf("SELECT * FROM bla WHERE `DOB` = %s", $today);
然后初始化查询,说出应该选择的内容。
{{1}}
答案 3 :(得分:0)
我想您尝试这样的事情,使用case
语句来确定记录是否是当前的生日
select *,
case when day( date( dob ) )=day( date( now() ) ) and month( date( dob ) )=month( date( now() ) ) then 1
else 0
end as 'birthday'
from table