3

PHPを使用してMYSQLデータベースをエコーし​​、列「時間」の各行の「時間」の差を計算しようとしています。MYSQL データベースに TIME 形式 HH:MM:SS (00:00:00) で「時間」を格納しています。私が達成しようとしている出力の例:

Saved On | Time (MM:SS) | + / - Time (MM:SS)
----------------------------------
TIMEDATE | 00:11       | + 00:05 |
----------------------------------
TIMEDATE | 00:06       |  00:00  |
----------------------------------
TIMEDATE | 00:06       | - 1:00  |
----------------------------------
TIMEDATE | 00:07       |  00:00  |
----------------------------------

私の現在のmysqlクエリ+ php:

$result = mysql_query("SELECT * FROM timer WHERE user_id = '$userid' ORDER BY savedon DESC") 
or die(mysql_error());  

echo "<table class='sortable'>";
echo "<tr> <th>Saved On</th> <th>Time (MM:SS)</th> <th>+/-</th> </tr>";
    while($row = mysql_fetch_array( $result )) {
echo "<tr><td>";
echo $row['savedon'];
echo "</td><td>"; 
echo $row['time'];
echo "</td><td>"; 
echo $row['time']; // My issue is right here. I have no clue on how to calculate the +/- difference of times
echo "</td></tr>";  

}

echo "</table>";

私の問題:

  1. 時間の接頭辞を削除するように時間をフォーマットしようとしています。例: 00:00:06 (HH:MM:SS) ではなく 00:06 (MM:SS)。

  2. 上記のように、各行で時間差を計算する必要があります。

これをクエリのMYSQLで処理する必要があるのか​​、PHPで処理する必要があるのか​​ わかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

[id] と [id before id] の時間差が必要な場合は、副選択を使用できます。

SELECT TIMEDIFF(t1.time_row, (
    SELECT time_row FROM tablename t2 WHERE t2.id < t1.id ORDER BY id DESC LIMIT 1)
  )
FROM tablename t1
于 2016-01-20T09:43:09.317 に答える