php - 计算多行的两个数据库值之间的时间差

标签 php mysql codeigniter

我有一个包含两个时间戳(date_ticket_reported、date_ticket_resolved)的数据库,我想为每个 resolved_by user_id 计算这些时间之间的平均时间差。

每一行都有一个 (resolved_by) 列,它对应于一个 user_id。

对于每个 user_id,会有多行。

我尝试了各种方法,包括以下方法。

ticket_model.php code    
public function get_resolved_time_by_user($user_id){
    $query1 =    $this->db->select('resolved_date')->from('tickets')->where('resolved_by',$user_id)->get();
    $resolved1 =  $query1->row();
    $query2 = $this->db->select('ticket_date_reported')->from('tickets')->where('resolved_by',$user_id)->get();
    $reported1 = $query2->row();

    $resolved2 = $resolved1->resolved_date;
    $reported2 = $reported1->ticket_date_reported;
    foreach($resolved2 as $row){
    //Convert them to timestamps
    $reported_dateTimestamp = strtotime($resolved2);
    $resolved_dateTimestamp = strtotime($reported2);

    $diff = $resolved_dateTimestamp - $reported_dateTimestamp;
    return $diff;

    }

}

工单查看代码

<p> Average Resolve Times  <?php echo $this->ticket_model->get_resolved_time_by_user($user_id); ?> </p>   

总结一下;我想显示 date_ticket_reported、date_ticket_resolved 之间的平均时间。对于指定的每个 user_id。

任何帮助都会很棒!

我试过 Malkhazi Dartsmelidze 的回答,

$this->db->query("SELECT 
AVG(TIMESTAMPDIFF(SECOND, resolved_date, ticket_date_reported)) as     timediff,
    resolved_by as user
FROM tickets 
GROUP BY resolved_by");

我收到一条错误消息,指出类 CI_DB_mysqli_result 的对象无法转换为字符串

你在哪里说 resolved_by 作为用户。 “用户”应该是 user_id 吗?即它应该说“resolved_by as user_id”吗?

最佳答案

您只能使用 Myqsl 运行一个查询:

SELECT 
    AVG(TIMESTAMPDIFF(SECOND, resolved_date, ticket_date_reported)) as timediff,
    resolved_by as user
FROM tickets 
GROUP BY resolved_by

这将返回每个用户的平均时间差(以秒为单位)

关于php - 计算多行的两个数据库值之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55359447/

相关文章:

php - Laravel 数据库 :table for multi where AND Or condition for multiple slected field

php - 三元运算符的评估顺序

php - 显示投票最多的帖子

mysql - 使用 Rspec 和 Capybara、Mysql 事务测试 ajax 自动完成

php - 基于其他查询形成查询?

php - 是否有处理仅在 MVC 中的一个 View 中使用的 javascript 的标准方法?

php - 只有当所有其他表数据都正确时才选择一个数据

mysql - 使用以连字符开头的数据格式化 mysql 查询时遇到问题

大量更新应用程序中的 MySQL 性能调优

php - 在 where 中获取以逗号分隔的数据