php - 计算当前行和上一行之间的时间差

标签 php mysql

我的网络应用程序有下表,我想添加另一列来获取当前行和上一行之间的时间差。我怎样才能实现它?

当前这是我来自 php 应用程序的 sql 调用

$stmt = $db->prepare("SELECT device,lat,lon, speed, mode, DATE (`currentTime`) ,TIME_FORMAT(`currentTime`, '%H:%i:%s')
                            FROM myTable 
                            WHERE  device=?  limit ?");
$stmt ->bind_param('ii', $device_Number ,$limit);
$stmt ->bind_result($device, $lat, $lon, $speed, $mode, $currentDate, $currentTime);
$stmt ->execute();

enter image description here

最佳答案

这里我给出了具有日期时间差异的示例数据,这里您将数据保存在两个不同的列中 因此将日期差作为两列“时差”和“日差”

测试时间

    id  date1       time1 
    1   2017-08-14  01:06:11
    2   2017-08-14  01:09:13
    3   2017-08-14  01:16:10
    4   2017-08-14  01:21:00
    5   2017-08-15  01:21:00
    6   2017-08-15  02:13:00

Mysql查询是

    SELECT A.id, A.time1, TIMESTAMPDIFF(SECOND,A.time1,B.time1) AS timedifference,
    TIMESTAMPDIFF(DAY,A.date1,B.date1) AS daydifference 
    FROM testtime A INNER JOIN testtime B ON B.id = (A.id + 1) 
    ORDER BY A.id ASC 

关于php - 计算当前行和上一行之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45671429/

相关文章:

php - Laravel 5.2 如何在同一行显示成员列表和他/她的组(一对多(或多对多)数据显示)

php - 理解 PHP declare() 和 ticks

php - 在带有重音符号的 substr() 文本后显示有趣的字符

php - 'SQLSTATE[3D000] : Invalid catalog name: 1046 No database selected' after returning from Laravel password reminder

仅当存在字符时才选择 MySQL 子字符串

php从mysql解码二进制(16)ip

php - 如何在 iOS 中向 PHP 发送 GEt 请求

php - Laravel 创建方法返回 null

php - Ajax 返回 null

mysql - SQL 代码在在线编译器上运行良好,但在 Linux 终端中由 MariaDB 编译时失败(错误号 : 150))