mysql查詢獲得兩個時間的時間差方式
獲得當(dāng)前時間和另一時間的時間差
SELECT TIMESTAMPDIFF(SECOND,(select last_locationTime from municipal_employee where employee_id=9),now()) as diffTime;
mysql的
TIMESTAMPDIFF(SECOND,starttime,endtime)
函數(shù)獲得時間差,得到的可以是DAY/天,HOUR/小時,MINUTE/分鐘,SECOND/秒。
其中starttime為時間小的那個時間,endtime為時間大的時間。
now()函數(shù)為獲取當(dāng)前日期時間
mysql最全的計算時間差
計算兩日期時間之間相差的天數(shù),秒數(shù),分鐘數(shù),周數(shù),小時數(shù),這里主要分享的是通過MySql內(nèi)置的函數(shù) TimeStampDiff() 實現(xiàn)。
函數(shù) TimeStampDiff() 是MySQL本身提供的可以計算兩個時間間隔的函數(shù),語法為:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數(shù)差。
其中unit單位有如下幾種,分別是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。
該參數(shù)具體釋義如下:
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 函數(shù),但是該函數(shù)不用于陽歷出現(xiàn)(1582)前的值,原因是當(dāng)日歷改變時,遺失的日期不會被考慮在內(nèi)。
因此對于1582 年之前的日期(或許在其它地區(qū)為下一年 ), 該函數(shù)的結(jié)果實不可靠的。
具體用法如:
to_days(end_time) - to_days(start_time);
計算兩日期/時間之間相差的秒數(shù)
select timestampdiff(SECOND,'2011-09-30','2015-05-04');
另外還可以使用 MySql 內(nèi)置函數(shù) UNIX_TIMESTAMP 實現(xiàn),如下:
SELECT UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time);
計算兩日期/時間之間相差的時分數(shù)
select timestampdiff(MINUTE,'2011-09-30','2015-05-04');
另外還可以如下實現(xiàn):
SELECT SEC_TO_TIME(UNIX_TIMESTAMP(end_time) - UNIX_TIMESTAMP(start_time));
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ERROR 2002 (HY000): Can''t connect to local MySQL server thr
mysql 支持 socket 和 TCP/IP 連接。那么 mysql.sock 這個文件有什么用呢?本文給大家介紹的非常詳細,需要的朋友參考下吧2019-11-11
MySQL數(shù)據(jù)類型中DECIMAL的用法實例詳解
這篇文章主要介紹了MySQL數(shù)據(jù)類型中DECIMAL的用法實例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10
提升MySQL查詢效率及查詢速度優(yōu)化的四個方法詳析
查詢語句的優(yōu)化是提高MySQL查詢速度的重要方法,可以通過使用JOIN語句、子查詢、優(yōu)化where子句等方式來減少查詢的時間,下面這篇文章主要給大家介紹了關(guān)于提升MySQL查詢效率及查詢速度優(yōu)化的四個方法,需要的朋友可以參考下2023-04-04

