mysql 计算两个日期的时间差函数年月格式例如3年2个月

作者&投稿:杜园 (若有异议请与网页底部的电邮联系)
在MYSQL里,如何计算两个日期间的时间差,并已年月形式显示。~

不考虑 “天”的因素:
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月

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

记得有个timestampdiff(interval,time1,time2)函数,返回结果由interval决定,可以是year、mouth等

CONCAT(
CASE
WHEN FLOOR(TIMESTAMPDIFF(MONTH,c.platetime,CURRENT_DATE)/12)>0 THEN
CONCAT(FLOOR(TIMESTAMPDIFF(MONTH,c.platetime,CURRENT_DATE)/12),'年')
ELSE '' END,
CASE
WHEN TIMESTAMPDIFF(MONTH,c.platetime,CURRENT_DATE)%12>0 THEN
CONCAT(TIMESTAMPDIFF(MONTH,c.platetime,CURRENT_DATE)%12,'个月')
ELSE '0个月' END
))


江源区15383568415: mysql 计算两个日期的时间差函数小时分钟格式 -
充费西米: 如果datetime_expr1,datetime_expr2是datetime类型的话 select time_format(timediff('2000:01:31 23:59:59', '2000:01:01 00:00:00'),'%Hh%im') 也许可以满足你的要求

江源区15383568415: mysql 怎么算两日期相差多少分钟 -
充费西米: 用mysql的unix_timestamp函数来解决,我举个例子:select (unix_timestamp('2011-11-11 12:12:12')-unix_timestamp('2011-11-11 12:11:12'))/60------------------------------------------------------------------------------------------------------------------- mysql> select (unix...

江源区15383568415: 请问mysql的sql中如何计算两个datetime的差,精确到小时,谢谢
充费西米: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差. 其结果的单位由interval 参数给出.该参数必须是以下值的其中一个: FRAC_SECOND 表示间隔是毫...

江源区15383568415: mysql中如何计算日期之差 -
充费西米: select unix_timestamp(date)-unix_timestamp(end) as '两者相差的秒数' from '表名';

江源区15383568415: sql计算时间差的datediff函数怎么用 -
充费西米: 语法 DATEDIFF(datepart,startdate,enddate)datepart 缩写年 yy, yyyy季度 qq, q月 mm, m年中的日 dy, y日 dd, d周 wk, ww星期 dw, w小时 hh分钟 mi, n秒 ss, s毫秒 ms微妙 mcs纳秒 ns SELECT DATEDIFF(day,'2008-12-29','2008-12-...

江源区15383568415: 求mysql语句,作用:计算当天内两个时间的时间差.
充费西米: mysql> select TIME_FORMAT(timediff('20:18','02:55'),'%H:%i');

江源区15383568415: mysql 计算两个时间差值 统计 -
充费西米: select dealuserid,sum(dealdate)/count(dealuserid) as 平均 from tb_e_other order by dealuserid

江源区15383568415: mysql中计算两个时间的时间差,以分钟为单位. -
充费西米: 用时间戳来计算 SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP('2015-04-20 15:12:12'))/60;也就是得到两个时间相差的秒数,然后除60得到分种.

江源区15383568415: sql语句中如何进行日期比较? -
充费西米: datediff(d,需要比较的日期,getdate()),datediff返回两个日期之间的时间差,getdate()获取当天系统时间

江源区15383568415: 关于数据库MySQL中求两个时间差的问题. -
充费西米: select datediff(max(datecol),min(daecol)) from table1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网