如何在mysql数据库中查找特定的日期数据或下一个日期数据?

时间:2018-11-30 06:25:54

标签: php mysql

我正在尝试从数据库中查找特定的日期数据, 我的概念是如果给定2018-11-30在数据库中查找日期是否存在于数据库中,则它应该在输出中显示日期,如果不存在,则应该向2018-11-30添加+1日期并尝试查找下次约会2018-12-01就像明智的做法一样。

但是我正面临着一个问题,即数据库中没有检查日期。我不确定我的代码是正确的还是错误的,任何人都可以给我解决的方法。

这是我的代码

$Firstdate = '2018-11-29';
$Lastdate = '2018-12-03'; 

$Sql2 = "SELECT ScheduleDate FROM `empdet`";
$result2 = mysqli_query($con, $Sql2);

while($row = mysqli_fetch_array($result2))
{
    if($row["ScheduleDate"]==$Firstdate)
    {
        $DBfirstdate==$Firstdate; 
        echo "$DBfirstdatebb",$DBfirstdate;
        break;
    }
    else {
        $checkFDBdate=date('Y-m-d', strtotime("+1 day", strtotime($Firstdate)));

        if($row["ScheduleDate"]==$checkFDBdate)
        {
            $DBfirstdate=$checkFDBdate;
            echo "$DBfirstdate",$DBfirstdate;
            break;
        }
    }
}


$Sql3 = "SELECT ScheduleDate FROM `empdet`";
$result3 = mysqli_query($con, $Sql3);

while($row = mysqli_fetch_array($result3))
{
    if($row["ScheduleDate"] == $Lastdate) {
        $DBlastdate==$Lastdate;   
        echo "$DBlastdateBB",$DBlastdate;
        break;
    }
    else {
        $checkLDBdate=date('Y-m-d', strtotime("-1 day", strtotime($Lastdate)));

        if($row["ScheduleDate"]==$checkLDBdate)
        {
            $DBlastdate=$checkLDBdate;
            echo "$DBlastdate",$DBlastdate;
            break;
        }
    }
}

$sql ="select * from empdet where ScheduleDate between '".$DBfirstdate."' and '".$DBlastdate."'";
$result = $con->query($sql);

2 个答案:

答案 0 :(得分:0)

"=IFERROR(FIND(" & value & "," & Copyrange & "),0)"

答案 1 :(得分:0)

SELECT ScheduleDate FROM `empdet` where ScheduleDate > '$Firstdate' and ScheduleDate < '$Lastdate' order by ScheduleDate limit 1

尝试这种方式。您将在给定的日期范围内获得第一张原始照片。