我在SQL中有一个学生表,其中有一个名为'DateCompleted‘的'DATE’(2018-04-23)格式化列。
我要做的就是拉出离今天日期不到5天的“DateComplete”日期的学生。
我在这里找到了很多问题,回答了我所需要的一小部分,这就是我到目前为止所拥有的。代码运行,但没有任何反应。
$getToday = date("Y-m-d");
$SQLstring = "SELECT * FROM STUDENT WHERE Department='" . $dept . "'";
$SQLGetCompleted = "AND (DATEDIFF(d, " . strtotime($getToday) . ", DateCompleted) < 5")
$db_selected = mysqli_query($con, $SQLstring . $SQLGetCompleted);DATEDIFF应该返回今天和DateCompleted之间的天数,如果它少于5天
注意:$getToday必须是在SQL字符串中格式化的字符串,否则如果您尝试将日期值放入字符串中,它将会出错。
发布于 2018-05-11 23:26:14
首先,你应该学会使用参数。其次,您的查询将类似于以下内容之一。
过去五天内发生的任何事情:
where datecompleted >= curdate() - interval 5 days and
datecompleted <= curdate() -- may not be needed对于11天内的任何事情(之前5天,之后5天,今天)。
where datecompleted >= curdate() - interval 5 days and
datecompleted < curdate() + interval 5 days如果datecompleted实际上有一个时间组件,那么您需要更加小心一些。您的样本数据表明这只是一个日期。
发布于 2018-05-11 23:27:58
AND (DATE(DateCompleted) - fn Now()) < 5或
AND DATE(DateCompleted) < fn Now() - 5或
AND DATE(DateCompleted) < GETDATE() - 5https://stackoverflow.com/questions/50295504
复制相似问题