Php 从db获取今天的出生日期

Php 从db获取今天的出生日期,php,mysql,sql,date,datetime,Php,Mysql,Sql,Date,Datetime,我有一个列DOB,它有person的DOB,并以(y-m-d)格式存储它。我想知道得到今天出生日期的查询是什么。 我试过date(y-m-d),但它只显示今天的日期结果。 i、 e.如果在我的数据库中有2018-2-20asdob,那么它将显示在我的结果中,但是如果有1995-2-20这个日期不会显示为结果,所以基本上我只想显示今天谁的生日。你可以这样写 SELECT * FROM persons WHERE DATE_ADD(birthday, IN

我有一个列
DOB
,它有person的
DOB
,并以
(y-m-d)
格式存储它。我想知道得到今天出生日期的查询是什么。 我试过
date(y-m-d)
,但它只显示今天的日期结果。
i、 e.如果在我的数据库中有
2018-2-20
as
dob
,那么它将显示在我的结果中,但是如果有
1995-2-20
这个日期不会显示为结果,所以基本上我只想显示今天谁的生日。

你可以这样写

 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);

我认为这将帮助您获得今天有b'day的用户。

首先获取当前日期

$today = date("yyyy-mm-dd");
然后初始化查询,在那里你说应该选择什么

$query = sprintf("SELECT * FROM bla WHERE `DOB` = %s", $today);

我想您可以尝试类似的方法,使用
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
你可以这样试试

MySQL查询:

SELECT * 
FROM
  YourTable
WHERE 
  DATE_FORMAT(BirthDayField,'%m-%d') = DATE_FORMAT(NOW(),'%m-%d')
此查询将
所需日期
当前日期
转换为
m(月)-d(日)
格式并进行比较

注意:此处的
BirthDayField
是数据类型为
DATE


有关MySQL函数的详细信息

列数据类型?日期是列的数据类型,因此您只希望比较日和月,而不希望比较年。这里的答案是:是的,我只想比较日期和月份,然后我只会得到生日这只会检查他们是否今天出生。这只会检查他们是否今天出生。我如前所述尝试了这一方法,但它给出了今天日期(包括当前年份)的结果,但我想查询将选择哪一个