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;