1. 程式人生 > >mysql 計算兩個時間差函式

mysql 計算兩個時間差函式

一     mysql中用函式 TIMESTAMPDIFF 計算兩個時間差。

語法:TIMESTAMPDIFF(interval,time_start,time_end)

案例1:計算兩個時間相隔多少天

SELECT TIMESTAMPDIFF( DAY, '2017-12-01 12:15:12','2018-01-01 7:18:20') day_time


案例2:計算兩個時間相隔多少月
SELECT TIMESTAMPDIFF( MONTH, '2017-11-01 12:15:12','2018-01-01 12:15:12') day_time


案例3:計算兩個時間相隔多少年
SELECT TIMESTAMPDIFF( YEAR, '2017-01-01 12:15:12','2018-01-01 12:15:12') day_time


案例4:計算兩個時間相隔多少星期
SELECT TIMESTAMPDIFF( WEEK, '2018-01-01 12:15:12','2018-01-08 12:15:12') day_time

二、PERIOD_DIFF()函式

     作用:返回兩個時間相差的月份數,注意它是前一個時間減後一個時間

     例1:返回 2014-03-20 到 2014-04-10之間的月份數,結果是 -2 。

     SELECT PERIOD_DIFF( DATE_FORMAT('2014-03-20','%Y%m%d') , DATE_FORMAT( '2014-04-10', '%Y%m%d' )          )  FROM  DUAL;

     例2:返回 2014-04-10 到 2014-03-20之間的月份數,結果是 2 。

     SELECT PERIOD_DIFF( DATE_FORMAT('2014-04-10','%Y%m%d') , DATE_FORMAT( '2014-03-20', '%Y%m%d' ) )  FROM DUAL;   

三、DATE_SUB()函式

定義:

DATE_SUB() 函式從日期減去指定的時間間隔。

語法:

DATE_SUB(date,INTERVAL expr type)

假設我們有如下的表:

OrderId ProductName OrderDate
1 'Computer' 2008-12-29 16:25:46.635

現在,我們希望從 "OrderDate" 減去 2 天。

我們使用下面的 SELECT 語句:

SELECT OrderId,DATE_SUB (OrderDate,INTERVAL 2 DAY)   AS OrderPayDate  FROM Orders

結果:

OrderId OrderPayDate
1 2008-12-27 16:25:46.635

四、DATE_FORMAT()函式

     作用:格式化日期時間

     SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') FROM DUAL;