我想查找注册日期等于4-22的人员的数据库表。

我的sql看起来像这样

function GetUsers($dreg)
{
    $dt=(new DateTime($dreg))->format('Y-m-d');
    $result=$this->query("SELECT * FROM tablex WHERE dreg='$dt'");
    return ($this->getNumRows()>0)?$result:null;
}


但是,SQL结果不正确,因为我只需要获取雇员注册的月份和日期而不是年份。

最佳答案

您只需要比较日期和月份,而不要比较整个日期:

function GetUsers($dreg)
{
    $dt=(new DateTime($dreg))->format('m-d');
    $result=$this->query("SELECT * FROM tablex WHERE DATE_FORMAT(dreg, '%m-%d') = '$dt'");
    return ($this->getNumRows()>0)?$result:null;
}

关于php - 通过数据库搜索失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9986495/

10-11 04:43