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;