程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mySQL的datetime的時間間隔

mySQL的datetime的時間間隔

編輯:MySQL綜合教程

mySQL比較兩個datetime類型的時間間隔,以秒為單位:

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')
\01:01:00
SELECT TIME_TO_SEC('01:01:00')

\3660
因此便知兩個datetime數據之間相差的秒數。
如果我們考慮這兩個datetime數據先用TIME_TO_SEC轉化為各自秒數,再來相減,不是一樣的效果嗎?
SELECT TIME_TO_SEC('2009-02-09 11:24:46')-TIME_TO_SEC('2009-02-09 10:23:46')
3660
看似這種方法也ok,不過我們再觀察一組數據,你就清楚為什麼不能用這種方式來比較兩個datetime數據之間的時間間隔了。
我們現在改用'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
奇怪了,左邊參數已經比右邊參數提早一天了,為什麼秒數相減還是正值呢?
原來,TIME_TO_SEC只會把datetime數據的time部分轉化為秒數,不會關心date誰大誰小,所以要比較兩個datetime數據,先得TimeDiff一下,再轉化為秒數,即開頭寫的:
SELECT TIME_TO_SEC(TIMEDIFF('2009-02-09 11:24:46','2009-02-09 10:23:46'));

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved