MySql计算两个日期的时间差
MySql计算两个日期的时间差有两种可供选择
第一种、TIMESTAMPDIFF函数
TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间
比较的是两个时间的天数差;
SELECT TIMESTAMPDIFF(DAY,'-10-01','-01-13');返回结果是:104
比较的是两个时间的月份差
SELECT TIMESTAMPDIFF(MONTH,'-10-01','-01-13');返回结果是:3
第二种方法: DATEDIFF函数
DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值
SELECT DATEDIFF('-01-13','-10-01');返回结果是:104
实例
1、授权函申请是否存在超期10天以上且正在申请的记录SELECTa.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 '超期天数'FROMt_comm_user aLEFT JOIN t_comm_organization b ON _ = b.ID_LEFT JOIN t_administration_authorize c ON a.ID_ = c.APPLY_USER_WHEREc.STATUS_ = 2AND TIMESTAMPDIFF(DAY, c.TERM_DATE_, NOW()) > 10;