两行之间的时差 - mysql

时间:2017-04-07 10:50:14

标签: php mysql

我想知道是否有任何方法可以计算两行之间的时差。我想计算名字的时差 - >测试等。名称可以是任何顺序。

我想知道测试在第1行和第3行是否有两次,然后在第7行和第11行,我可以计算这些行之间的时差吗?即第1行和第3行,第7行和第11行。

我的数据库下的图像

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用TIMEDIFF()子查询

SELECT TIMEDIFF((SELECT `entered_at` FROM `demo_test3` WHERE `id`='1'),
               (SELECT `entered_at` FROM `demo_test3` WHERE `id`='3'))

答案 1 :(得分:0)

如果你想检查PHP的差异,你可以做这样的事情。

function secondsBetweenRows($first, $second)
{
    return strtotime($second->entered_at) - strtotime($first->entered_at);
}

// group rows by users
$users = []
foreach ($rows as $row) {
    $users[$row->name] = $row;
}

// check row difference
$timeDiff = [];
foreach ($users as $userName => $userRows) {
    // assume there are always to, if not do some checks here
    $timeDiff[$userName] = secondsBetweenRows($userRows[1], $userRows[0]);
}

print_r($timeDiff);
/*
  Array
  (
      [test]  => 24
      [test1] => 26
  )
*/