【问题标题】:How to get the sum of time in a column of all rows using mysql如何使用mysql获取所有行的列中的时间总和
【发布时间】:2016-02-06 02:47:08
【问题描述】:

我有一个表,其中包含时间类型的持续时间列。我正在使用 codeigniter 和 mysql,我想总结一下这段时间。这样我就可以以总秒数、小时数或分钟数显示。请帮助解决这个问题。

$condition = "itemid =" . "'" . $section_id . "'";
$this->db->select('*, SEC_TO_TIME(SUM(TIME_TO_SEC(`duration`))) AS timeSum ');
$this->db->from('duration');
$this->db->where($condition);
$query = $this->db->get();


foreach($query->result_array() as $row1)
{
$row['course_data'][] = $row1;
echo "time".$row1['timeSum']."<br/>";
}

【问题讨论】:

  • 也发布你的表格数据
  • Saty- 我添加了图像,我想获取持续时间列的总和,无论总和是秒还是小时还是分钟。

标签: php mysql codeigniter codeigniter-2 codeigniter-3


【解决方案1】:

使用SEC_TO_TIME将时间转换为秒

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `duration` ) ) ) AS timeSum '); 
$this->db->where('itemid',$id);
$query = $this->db->get('duration');

【讨论】:

  • 萨蒂感谢您的回答。我试过你的代码,但它在以下行显示 sql 语法错误: $this->db->select('* SEC_TO_TIME(SUM(TIME_TO_SEC(duration))) AS timeSum ');
  • 我没有在 select 语句中放置逗号是我的错,但我得到的输出是 time-00:09:15, time-00:00:00,time-01:00:00 , 时间-00:00:00
  • 但它应该输出 00:09:15 即 itemid 1 的 9 分 15 秒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 2013-10-16
  • 2020-04-19
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多