首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据两个日期之间的天数从SQL拉取数据

根据两个日期之间的天数从SQL拉取数据
EN

Stack Overflow用户
提问于 2018-05-11 23:22:43
回答 2查看 46关注 0票数 0

我在SQL中有一个学生表,其中有一个名为'DateCompleted‘的'DATE’(2018-04-23)格式化列。

我要做的就是拉出离今天日期不到5天的“DateComplete”日期的学生。

我在这里找到了很多问题,回答了我所需要的一小部分,这就是我到目前为止所拥有的。代码运行,但没有任何反应。

代码语言:javascript
复制
$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字符串中格式化的字符串,否则如果您尝试将日期值放入字符串中,它将会出错。

EN

回答 2

Stack Overflow用户

发布于 2018-05-11 23:26:14

首先,你应该学会使用参数。其次,您的查询将类似于以下内容之一。

过去五天内发生的任何事情:

代码语言:javascript
复制
where datecompleted >= curdate() - interval 5 days and
      datecompleted <= curdate()  -- may not be needed

对于11天内的任何事情(之前5天,之后5天,今天)。

代码语言:javascript
复制
where datecompleted >= curdate() - interval 5 days and
      datecompleted < curdate() + interval 5 days

如果datecompleted实际上有一个时间组件,那么您需要更加小心一些。您的样本数据表明这只是一个日期。

票数 2
EN

Stack Overflow用户

发布于 2018-05-11 23:27:58

代码语言:javascript
复制
AND (DATE(DateCompleted) - fn Now()) < 5

代码语言:javascript
复制
AND DATE(DateCompleted)  <  fn Now() - 5

代码语言:javascript
复制
AND DATE(DateCompleted)  <  GETDATE() - 5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50295504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档