【发布时间】:2021-12-11 18:05:40
【问题描述】:
我有一个查询,它返回我的数据库表中所有“总计”字段的总和。查询:
public function findHoursTotal($user)
{
return $this->createQueryBuilder('h')
->where('h.user = :user')
->andWhere('h.date BETWEEN :start AND :end')
->select("SUM(h.total)")
->setParameter('user', $user)
->setParameter('start', new \DateTime("midnight first day of this month"))
->setParameter('end', new \DateTime("Last day of this month"))
->getQuery()
->getSingleScalarResult();
}
查询按预期工作,但我无法正确获取格式。
total 字段为 TIME,包含以下值:
01:24:00
01:00:00
查询将返回总和为 12400。
我尝试了 DATE_FORMAT() 但这返回 null:
->select("DATE_FORMAT(SUM(h.total), '%H:%:i%s')")
我试图在我的控制器中将字符串转换为日期格式,但 php 认为格式以秒为单位。
有谁知道如何从 H:i:s 中的查询中获取结果?
【问题讨论】:
-
您使用的是什么 rdbms,
h.total列的数据类型是什么? -
@SalmanA h.total 字段的数据类型是 Time 但查询返回一个字符串并且我使用 Phpmyadmin
标签: php datetime doctrine aggregate-functions