一 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;