我有一個查詢,它回傳資料庫表中所有“總計”欄位的總和。
查詢:
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();
}
查詢按預期作業,但我無法正確獲取格式。
例如:
1 = 01:24:00 和 2 = 01:00:00
查詢將回傳其總和為 12400。
我試過了,DATE_FORMAT()但這回傳空值:
->select("DATE_FORMAT(SUM(h.total), '%H:%:i%s')")
我試圖在我的控制器中將字串轉換為日期格式,但 php 認為格式以秒為單位。
有誰知道如何從 H:i:s 中的查詢中獲取結果?
謝謝!
uj5u.com熱心網友回復:
你不能SUM在time值。但是你可以轉換TIME_TO_SEC,計算秒數,然后轉換SEC_TO_TIME:
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(total)))
FROM h
WHERE ...
-- should give you something similar to 02:24:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336966.html
