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

时间:2016-09-30 12:36:28

标签: sql symfony dql

我正在使用Symfony和Doctrine。我想在两个时间戳之间经过一段时间。这是我的查询的一部分(a.date和q.date都是type: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');

这样可行,但会在几天内给出结果。我真的需要几分钟或几秒钟。

2 个答案:

答案 0 :(得分:1)

请改用UNIX_TIMESTAMP。试试这个:

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

答案 1 :(得分:0)

您需要使用DATE_FORMAT函数。

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

试试这个。我现在没有mysql控制台,但我认为它会起作用。