gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:49:58 24 4
gpt4 key购买 nike

我有一个包含两个时间戳(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com