【问题标题】:Find results older than 2 days from date in SQL在 SQL 中查找日期超过 2 天的结果
【发布时间】:2017-07-10 17:18:24
【问题描述】:

在我的数据库中,我记录了输入的日期。我想查找早于 2 天或更早的条目。

我尝试了以下无法正常工作的方法。

//Order is over 2 days old YES
$todaysDate = date("Y-m-d"); 
$todaysDatePlusDelay = date('Y-m-d', strtotime($todaysDate. ' + 2 days'));

使用 SQL 代码

mysql_query("SELECT * FROM orders WHERE date >= $todaysDatePlusDelay") or die("error");

我可以在 SQL 中完成所有这些吗?

日期以这种格式显示2017-07-10

【问题讨论】:

  • 不要使用mysql_* 函数。它们自 v5.5(2013 年 6 月)起已被弃用,自 v7.0(2015 年 12 月)起已被删除。而是将mysqli_*PDO 函数与prepared statementsbound parameters 一起使用。
  • 您要在今天增加 2 天,然后寻找大于或等于该天数的订单?是否有可能有未来的订单?

标签: php sql


【解决方案1】:

为什么不这样做呢?

SELECT o.*
FROM orders o
WHERE o.date <= curdate() - interval 2 day;

另外,你确定你真的不想让- 而不是+ 来获取前两天而不是接下来两天的数据。

(并且使用 mysqli_ 而不是 mysql_。)

【讨论】:

  • date 是输入的日期。这之后我需要两天或更长时间。未来的订单是不可能的。哪个是正确的?
  • @user2203466 。 . .相同的想法,但逻辑略有不同。
  • 好的排序!谢谢!! curdate() >= 日期 + 间隔 2 天
猜你喜欢
  • 2019-02-25
  • 2011-10-31
  • 2011-04-21
  • 1970-01-01
  • 2012-07-14
  • 2022-11-14
  • 1970-01-01
  • 2021-06-28
  • 2015-06-02
相关资源
最近更新 更多