Php 获得日期差

Php 获得日期差,php,mysql,pdo,Php,Mysql,Pdo,我想在我的查询中得到两个日期之间的差异。我尝试使用multipleselect语句,但它不起作用 这是我的密码 $tbl_name = "myTable"; $setDay = "10"; $stmt = $pdo->query("SELECT * ( SELECT due_date, date_paid, DATEDIFF(due_date, date_paid) as da

我想在我的查询中得到两个日期之间的差异。我尝试使用multipleselect语句,但它不起作用

这是我的密码

$tbl_name = "myTable";
$setDay = "10";

$stmt = $pdo->query("SELECT * (
              SELECT due_date,
                     date_paid,
                     DATEDIFF(due_date, date_paid) as date_interval) 
              FROM $tbl_name 
              WHERE DATEDIFF(due_date, date_paid) <= $setDay 
              ORDER BY trans_id DESC LIMIT $start, $limit");
$stmt->execute();

谢谢

使用此项查找日期差异

      $diff=date_diff($date1,$date2);

首先开发MySQL查询并在PHP代码的上下文之外对其进行完善非常重要,然后在MySQL客户端应用程序(如MySQL Workbench、PHPMyAdmin等)中以您需要的方式运行查询后,将其集成到MySQL客户端应用程序中

在您的查询中,不需要外部选择,内部查询本身看起来几乎正确,但您尝试使用PDO执行它的方式是错误的

SELECT
  due_date,
  date_paid,
  DATEDIFF(due_date, date_paid) as date_interval
FROM $tbl_name
WHERE
  DATEDIFF(due_date, date_paid) <= $setDay
ORDER BY trans_id DESC
LIMIT $start, $limit
我总是建议您花些时间将PDO的使用放在您可能已经熟悉的旧mysql_*API的上下文中。

试试这个

SELECT * , (select (DATEDIFF(due_date,date_paid)) AS date_interval) FROM $tbl_name

OP需要计算查询内部的差异,以便在WHERE条件中使用,而不是在PHP外部使用。但是我还需要外部选择来显示表中的其他字段,这就是我添加它的原因。我如何做到这一点,因为结果仍然和以前一样。感谢您不需要外部选择-您只需将其他字段添加到选择列表中即可。您只处理一个表,没有聚合,因此不需要子查询。如果您需要其他信息,则需要澄清您的问题,这不符合要求。指示错误所在的WHERE条件不是错误的,除非在错误的位置使用该子查询。现在,您可以根据需要向SELECT添加任意多的附加字段。@Chidi请看,如果您的情况更复杂,请编辑您的问题,将表中的示例行以及您希望从这些行中获得的查询输出示例包括在内。您甚至第一次都是对的。我想和我一起去第二个驿站,但是在路上,我回来后会停下来。谢谢
SELECT * , (select (DATEDIFF(due_date,date_paid)) AS date_interval) FROM $tbl_name