从db

时间:2018-02-20 07:51:34

标签: php mysql sql date datetime

我的专栏DOBdob个人,并以(y-m-d)格式存储。我想知道今天的出生日期是什么。 我曾尝试date(y-m-d),但它只显示了今天的日期结果。 即如果我的数据库中有2018-2-20dob,那么它将显示在我的结果中但是如果有1995-2-20这个日期没有显示为结果所以基本上我只想显示谁&#今天是生日。

4 个答案:

答案 0 :(得分:2)

您可以尝试这样

MySQL查询:

SELECT * 
FROM
  YourTable
WHERE 
  DATE_FORMAT(BirthDayField,'%m-%d') = DATE_FORMAT(NOW(),'%m-%d')

此查询将您的desired datecurrent 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