如何获取 dql 中两个时间戳之间经过的时间(以秒为单位)?

How to get the time elapsed in seconds between two timestamps in dql?

我正在使用 Symfony 和 Doctrine。我想获得两个时间戳之间经过的时间。这是我查询的一部分(a.date 和 q.date 都是类型:timestamp):

$qb->select('a.date - q.date AS elapsed_time');

这给出了一个数值结果,但我不知道单位是什么。 9秒给了我49分,60秒给了我99分;我无法理解。

我也试过这个:

$qb->select('DATE_DIFF(a.date,  q.date) AS elapsed_time');

这有效,但以天为单位给出结果。我真的需要分秒。

改用UNIX_TIMESTAMP。试试这个:

$qb->select('(UNIX_TIMESTAMP(a.date) - UNIX_TIMESTAMP(q.date)) AS elapsed_time');

您需要使用函数DATE_FORMAT。

$qb->select(DATE_FORMAT(DATE_DIFF(a.date,  q.date), '%s') AS elapsed_time);

试试这个。我现在没有 mysql 控制台,但我认为它可以工作。