MySql計算兩日期時間之間相差的天數,秒數,分鍾數,周數,小時數


MySql計算兩日期時間之間相差的天數,秒數,分鍾數,周數,小時數

計算兩日期時間之間相差的天數,秒數,分鍾數,周數,小時數,這里主要分享的是通過MySql內置的函數 TimeStampDiff() 實現。
函數 TimeStampDiff() 是MySQL本身提供的可以計算兩個時間間隔的函數,語法為:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數差。其中unit單位有如下幾種,分別是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。該參數具體釋義如下:
FRAC_SECOND   表示間隔是毫秒
SECOND   秒
MINUTE   分鍾
HOUR   小時
DAY   天
WEEK   星期
MONTH   月
QUARTER   季度
YEAR   年
例如:
#計算兩日期之間相差多少周
select timestampdiff(week,'2011-09-30','2015-05-04');
#計算兩日期之間相差多少天
select timestampdiff(day,'2011-09-30','2015-05-04');
另外計算兩日期或時間之間相差多少天還可以使用 to_days 函數,但是該函數不用於陽歷出現(1582)前的值,原因是當日歷改變時,遺失的日期不會被考慮在內。因此對於1582 年之前的日期(或許在其它地區為下一年 ), 該函數的結果實不可靠的。具體用法如:
to_days(end_time) - to_days(start_time);
  
#計算兩日期/時間之間相差的秒數:
select timestampdiff(SECOND,'2011-09-30','2015-05-04');
另外還可以使用 MySql 內置函數 UNIX_TIMESTAMP 實現,如下:
SELECT UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time); 
  
#計算兩日期/時間之間相差的時分數: 
select timestampdiff(MINUTE,'2011-09-30','2015-05-04');
另外還可以如下實現:
SELECT SEC_TO_TIME(UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM