1
我有一個查詢,我正在測試時間。Mysql timediff返回兩個不同的值
我得到兩個不同的時間,這使我懷疑我的數據的正確性。
這裏有兩個例子:
SELECT
users.fname as counselor,
count(session.anum) as students,
SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(starttime, signintime)))) AS 'AVG Wait Time',
SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(finishtime, starttime)))) AS 'AVG Session Length'
FROM session
LEFT JOIN support
ON support.session_id = session.session_id
LEFT JOIN users
ON users.username = support.counselor
WHERE session.status = 3
GROUP BY fname;
這將返回:
00:01:17 and 00:00:05
下一個查詢是:
SELECT
users.fname as counselor,
count(session.anum) as students,
SEC_TO_TIME(AVG(TIMEDIFF(starttime, signintime))) AS 'AVG Wait Time',
SEC_TO_TIME(AVG(TIMEDIFF(finishtime, starttime))) AS 'AVG Session Length'
FROM session
LEFT JOIN support
ON support.session_id = session.session_id
LEFT JOIN users
ON users.username = support.counselor
WHERE session.status = 3
GROUP BY fname;
00:01:37 and 00:00:05
爲什麼會出現這種情況和結果集是我應該去相信?如果任何人能夠清除我的困惑,會很樂意。
啊,所以TIME_TO_SEC版本的查詢是最可靠的?最好是用TIMESTAMPDIFF()代替? – RaGe10940 2013-03-11 17:57:42
這是真的。 'AVG()'和int一起使用。這將獲取非數字字符之前的所有數字,並刪除它們後面的所有數字。例子是'123!456 - > 123'。幹得好馬克。 – Mic1780 2013-03-11 17:58:11
當我等待接受答案時,是否最好使用TIMESTAMPDIFF() – RaGe10940 2013-03-11 17:59:56