クエリをテストして、適切な結果が返されることを確認しました。しかし、私は自分が間違った時間を取っていることに気づきました。私のタイムスタンプの1つは
2013-02-07 07:26:04
そして私は引く:
2013-02-07 07:18:23
最初のタイムスタンプから
それは私に12分かそこらの違いを与えていました。今、私は数学の天才ではありませんが、18-12 = 6...ではなく12...と言うこともできるので、クエリに問題があることはわかっていました。だから私はSEC_TO_TIMEを削除しました、そしてそれは私に次の正しい時間差を与えました:
+------------+-----------+--------------+----------------+--------+----------+
| session_id | anum | first | last | why | time |
+------------+-----------+--------------+----------------+--------+----------+
| 220 | B00000000 | Testing | thisout | Other | 00:07:41 |
+------------+-----------+--------------+----------------+--------+----------+
This is my query now :
SELECT
session.session_id,
session.anum,
student.first,
student.last,
session.why,
(TIMEDIFF(t.fin, session.signintime)) AS time
FROM session
INNER JOIN student
ON session.anum = student.anum
LEFT JOIN (SELECT support.session_id, MAX(support.finishtime) AS fin FROM support GROUP BY support.session_id) AS t
ON t.session_id = session.session_id
WHERE session.status = 3
問題は、TIMEDIFFの前にSEC_TO_TIMEを追加すると発生します。
なぜこれが起こるのですか?
ここで、SEC_TO_TIMEを使用したクエリの結果を表示します。
+------------+-----------+--------------+----------------+--------+----------+
| session_id | anum | first | last | why | time |
+------------+-----------+--------------+----------------+--------+----------+
| 220 | B00000000 | Testing | thisout | Other | 00:12:21 |
+------------+-----------+--------------+----------------+--------+----------+
2 rows in set (0.00 sec)
どんな説明でも素敵でしょう。