mySQL比較兩個(gè)datetime類型的時(shí)間間隔,以秒為單位:
SELECTTIME_TO_SEC(TIMEDIFF('2009-02-09 11:24:46','2009-02-09 10:23:46'));
先看SELECT TIMEDIFF('2009-02-09 11:24:46','2009-02-09 10:23:46')
SELECT TIME_TO_SEC('01:01:00')
因此便知兩個(gè)datetime數(shù)據(jù)之間相差的秒數(shù)。
如果我們考慮這兩個(gè)datetime數(shù)據(jù)先用TIME_TO_SEC轉(zhuǎn)化為各自秒數(shù),再來(lái)相減,不是一樣的效果嗎?
SELECT TIME_TO_SEC('2009-02-09 11:24:46')-TIME_TO_SEC('2009-02-09 10:23:46')
3660
看似這種方法也ok,不過(guò)我們?cè)儆^察一組數(shù)據(jù),你就清楚為什么不能用這種方式來(lái)比較兩個(gè)datetime數(shù)據(jù)之間的時(shí)間間隔了。
我們現(xiàn)在改用'2009-02-08 11:24:46'和'2009-02-09 10:23:46'比較:
SELECT TIME_TO_SEC('2009-02-08 11:24:46')-TIME_TO_SEC('2009-02-09 10:23:46')
3660
奇怪了,左邊參數(shù)已經(jīng)比右邊參數(shù)提早一天了,為什么秒數(shù)相減還是正值呢?
原來(lái),TIME_TO_SEC只會(huì)把datetime數(shù)據(jù)的time部分轉(zhuǎn)化為秒數(shù),不會(huì)關(guān)心date誰(shuí)大誰(shuí)小,所以要比較兩個(gè)datetime數(shù)據(jù),先得TimeDiff一下,再轉(zhuǎn)化為秒數(shù),即開頭寫的:
SELECT TIME_TO_SEC(TIMEDIFF('2009-02-09 11:24:46','2009-02-09 10:23:46'));
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com