php - 查找对话次数和每次对话的总时间

标签 php mysql

$query=mysql_query("SELECT @rownum := @rownum + 1 AS id,t.convo_id,t.body_xml,FROM_UNIXTIME(t.timestamp) FROM messages t,(SELECT @rownum := 0) r WHERE t.convo_id='137'");

$recordset = array(); 

$i = 0;

while ($row = mysql_fetch_array($query))

{

       $recordset[$i] = $row;
    if ($i > 0) 
    { 
        $recordset[$i-1]['nextid'] = $row['0']; 
        $datetime1 = new DateTime($recordset[$i-1][3]);
        $datetime2 = new DateTime($recordset[$i][3]);

        $interval = $datetime1->diff($datetime2);
        $hours   = $interval->format('%h');
        $minutes = $interval->format('%i');
        $seconds = $interval->format('%s');
        ?>
        <tr>
            <td><?php echo $row[0];?></td>
            <td><?php echo $row[1];?></td>
            <td><?php echo $row[2];?></td>
            <td><?php echo $row[3];?></td>
            <td><?php echo  $hours .":".$minutes.":".$seconds ?></td>
           <?php

     }

    $i++;

}
OUTPUT
-----------------------------------------------------------------------------------
SL.No  Convo               Message                  Date               Duration
         ID
-----------------------------------------------------------------------------------
  2     137             Hi                      2012-08-30 10:29:59     0:0:21
  3     137             How are u?              2012-08-30 10:30:39     0:0:40
  4     137             Fine                    2012-08-30 10:31:05     0:0:26
  5     137             abc                     2012-08-30 15:05:50     2:16:49
  6     137             xyz                     2012-08-30 15:07:03     0:1:13
  7     137             bcc                     2012-08-30 15:07:39     0:0:36

如果持续时间超过 10 分钟,则视为新对话,并记下之前对话的开始时间和结束时间。

我需要找到没有。对话次数以及每次对话的总时间。

----------------------------------------------------------------------------------------
START                             END                          TOTAL TIME
----------------------------------------------------------------------------------------
2012-08-30 10:29:59        2012-08-30 10:31:05                   0.1.37

最佳答案

    SELECT @rownum := @rownum + 1 AS id,t.convo_id,t.body_xml,
         str_to_date(min(t.timestamp),'%y%m%d')as
         start,str_to_date(max(t.timestamp),'%y%m%d') as 
end,sum(str_to_date(t.timestamp),'%i')as    duration FROM
         messages t,(SELECT @rownum := 0) r WHERE t.convo_id='137' group by t.convo_id 

关于php - 查找对话次数和每次对话的总时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12928004/

相关文章:

php - 如何定位具体的XSS漏洞?

PHP - 无法监听提交按钮按下

mysql - 如何从单列中清除大型 MySQL 数据库旧条目?

Mysql的启动和停止

php - 如何在mysql中查找行总和?

MySQL 无法使用我创建的用户

php - CSS 更改不会立即显示在浏览器中 - Codeigniter

php - Paypal API 捐赠分成不同的企业账户

javascript - 将在 ajax 调用中工作的 Strtotime 函数

MySQL 正在向我的数据中添加字符