Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算行插入时间差_Php_Mysql_Timestamp - Fatal编程技术网

Php 计算行插入时间差

Php 计算行插入时间差,php,mysql,timestamp,Php,Mysql,Timestamp,例如,如果我在mysql表中有id和时间戳。它包含几个记录。如何在php中查找和存储每行插入时间差,即比较第2行与第1行的插入时间并存储结果,比较第3行与第2行并存储结果 我有一个以消息名称命名的表,字段是 id int(11), timestamp int(11), body_xml text, chatname text 此表包含聊天信息,我需要找到使用IDE的特定用户的总聊天时间和对话次数。因此,我想找出每一行的时间差,如果时差超过10分钟,则将其视为新会话。p> 我的任务是查找特

例如,如果我在mysql表中有id和时间戳。它包含几个记录。如何在php中查找和存储每行插入时间差,即比较第2行与第1行的插入时间并存储结果,比较第3行与第2行并存储结果

我有一个以消息名称命名的表,字段是

id int(11), 
timestamp int(11),
body_xml text, 
chatname text 

此表包含聊天信息,我需要找到使用IDE的特定用户的总聊天时间和对话次数。因此,我想找出每一行的时间差,如果时差超过10分钟,则将其视为新会话。p> 我的任务是查找特定用户的总聊天时间以及该用户在skype中的可用对话数

现在我将所有聊天信息存储到mysql表中

------------------------------------------------------------------------------------------- id timestamp message name ------------------------------------------------------------------------------------------- 1 2012-10-11 11:18:34 hi ram 2 2012-10-11 11:19:14 hw r u ram 3 2012-10-11 11:20:55 fine ram 4 2012-10-11 11:55:03 r u there ram 5 2012-10-11 11:56:21 yes ram 6 2012-10-11 11:57:33 then ram

以上表ID 1到3有小于10分钟的时差,但ID 4与ID 3有10分钟以上的时间差,因此这里将考虑为新的会话,将ID 1到3的总时间存储为4和6的可变值和UpADATE总时间到相同的可变值,这里总的对话是2。 我需要输出为 对流总次数2 总时间为xx:xx

我试过这个密码


我得到了空结果

好的,以下是步骤:

googlealtertablemysql,如果您必须为时差添加一行的话 谷歌关于加入,或者这是相当好的。为什么?您希望基于id列将表与自身连接起来,但将id+1放在一边。如果id不是一个直序列,您可以这样做:选择r1。* ,从表r2中选择maxtimestamp,其中r1.id>r2.id 从您的表r1 了解 理解步骤2和步骤3后,创建一个SQL SELECT语句,看看它是否满足您的需要。 当步骤4是您想要的时,您可以将此SELECT语句转换为UPDATE语句。 其余的计算最好用PHP完成。 如果还有问题,请回来,如果您表现出一定的努力,我们将很乐意为您提供帮助:
祝你好运。

请提供更多详细信息。请显示不起作用的查询。你可以显示你尝试过的内容吗?@Gapchoos我们可以停止使用textspeak吗?把你说清楚有多难?看在上帝的份上,它只是多了两个字符。所以基本上,你不知道如何编程,你来这里是想请人免费编程还是?谢谢你的回答,但是表中的id字段没有大小顺序,我喜欢211235700…@PraveenKumar更新了我的答案以反映这一点。我得到了这个问题的解决方案,谢谢!!!!! SELECT A.id, A.timestamp, (B.timestamp - A.timestamp) AS timedifference FROM time_diff A CROSS JOIN time_diff B WHERE B.id IN (SELECT MIN (C.id) FROM time_diff C WHERE C.id > A.timestamp) ORDER BY A.id ASC