0
$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++;

}
出力
-------------------------------------------------- ----------------------------------
SL.No Convo メッセージの日付 期間
         ID
-------------------------------------------------- ----------------------------------
  2 137 こんにちは 2012-08-30 10:29:59 0:0:21
  3 137 お元気ですか?2012-08-30 10:30:39 0:0:40
  4 137 良い 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 紀元前 2012-08-30 15:07:39 0:0:36

継続時間が 10 分を超える場合は、新しい会話と見なし、以前の会話の開始時刻と終了時刻をメモします。

いいえを見つける必要があります。会話の合計時間と各会話の合計時間など。

-------------------------------------------------- --------------------------------------
開始 終了 合計時間
-------------------------------------------------- --------------------------------------
2012-08-30 10:29:59 2012-08-30 10:31:05 0.1.37
4

2 に答える 2

1
    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 
于 2012-10-17T06:37:47.973 に答える
0

以下のクエリを使用

    SELECT conversation_id, MIN( `startDate` ) as START, MAX( `endDate` ) as END, SUM(`duration`) as TOTALTIME
    FROM `conversation_details`
    GROUP BY conversation_id
于 2012-10-17T06:12:58.513 に答える