不考虑 “天”的因素:
从事德阳机房服务器托管,服务器租用,云主机,虚拟主机,域名注册,CDN,网络代维等服务。
select if(month(d2)-month(d1)0,
concat(year(d2)-year(d1),'年',month(d2)-month(d1),'月'),
concat(year(d2)-year(d1)-1,'年',month(d2)-month(d1)+12,'月')) as r from xxxxx
----------------------------------------------------------------------------------------------------------
例子:
d1='2013-05-13'
d2='2014-07-13'
select if(month('2014-07-13')-month('2013-05-13')0,
concat(year('2014-07-13')-year('2013-05-13'),'年',month('2014-07-13')-month('2013-05-13'),'月'),
concat(year('2014-07-13')-year('2013-05-13')-1,'年',month('2014-07-13')-month('2013-05-13')+12,'月')) as r
结果:1年2月
=================================================================
d1='2013-05-13'
d2='2014-01-13'
select if(month('2014-01-13')-month('2013-05-13')0,
concat(year('2014-01-13')-year('2013-05-13'),'年',month('2014-01-13')-month('2013-05-13'),'月'),
concat(year('2014-01-13')-year('2013-05-13')-1,'年',month('2014-01-13')-month('2013-05-13')+12,'月')) as r
结果:0年8月
用时间戳来计算
SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP('2015-04-20 15:12:12'))/60;
也就是得到两个时间相差的秒数,然后除60得到分种。
MySql计算两个日期时间的差函数:
第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间,具体用法如下:
[sql] view plain copy
SELECT TIMESTAMPDIFF(DAY,'2012-10-01','2013-01-13');
返回结果是104,这里比较的是两个时间的天数差;
[sql] view plain copy
SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13');
这里比较的是两个时间的月份,返回的结果是3;
第二种方法: DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值,具体用法如下:
[sql] view plain copy
SELECT DATEDIFF('2013-01-13','2012-10-01');
返回的结果也是104。
另外其它的日期函数,
now()函数返回的是当前时间的年月日时分秒,如:2008-12-29 16:25:46
CURDATE()函数返回的是年月日信息: 如:2008-12-29
CURTIME()函数返回的是当前时间的时分秒信息,如:16:25:46
另外,如果我们想对一个包含年月日时分秒日期格式化成年月日日期,可以使用DATE(time)函数,如
DATE(now()) 返回的是 2008-12-29
MySql计算两个日期的时间差函数TIMESTAMPDIFF
例 SELECT TIMESTAMPDIFF(HOUR, '2010-04-23 17:53:38', '2010-04-22 15:49:43')