MySql计算两个日期的时间差

MySql计算两个日期的时间差有两种可供选择

第一种、TIMESTAMPDIFF函数

TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间

比较的是两个时间的天数差;

SELECT TIMESTAMPDIFF(DAY,'2012-10-01','2013-01-13');

返回结果是:104

比较的是两个时间的月份差

SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13');

返回结果是:3

第二种方法: DATEDIFF函数

DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值

SELECT DATEDIFF('2013-01-13','2012-10-01');

返回结果是:104

实例

1、授权函申请是否存在超期10天以上且正在申请的记录
SELECT
	a.ID_ AS '用户ID',
	a.NAME_ AS '用户姓名',
	a.CODE_ AS '用户编号',
	b.NAME_ AS '所在部门',
	c.ID_ AS '授权函申请ID',
	c.STATUS_ AS '授权函状态',
	c.APPLY_USER_ AS '申请人',
	c.APPLY_DATE_ AS '申请时间',
	c.CREATE_DATE_ AS '有效期至',
	TIMESTAMPDIFF(DAY, c.TERM_DATE_, NOW()) AS '超期天数'
FROM
	t_comm_user a
LEFT JOIN t_comm_organization b ON a.ORG_ = b.ID_
LEFT JOIN t_administration_authorize c ON a.ID_ = c.APPLY_USER_
WHERE
	c.STATUS_ = 2
AND TIMESTAMPDIFF(DAY, c.TERM_DATE_, NOW()) > 10;
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐