在工作中经常会遇到针对时间做处理的一些统计,如统计近3个小时的平均处理时间不超过10分钟等等,在MySQL中用到的出来时间的函数如下:
1.MySql内置的函数 TimeStampDiff
计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() 实现。
函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。
其中unit单位有如下几种,
分别是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。
该参数具体释义如下:
FRAC_SECOND表示间隔是毫秒 SECOND -秒 MINUTE-分钟 HOUR-小时 DAY-天 WEEK -星期 MONTH-月 QUARTER-季度 YEAR-年
2.MySQL Date 函数
下面的表格列出了 MySQL 中最重要的内建日期函数:
函数 | 描述 |
---|---|
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 提取日期或日期/时间表达式的日期部分 |
EXTRACT() | 返回日期/时间按的单独部分 |
DATE_ADD() | 给日期添加指定的时间间隔 |
DATE_SUB() | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
统计近3个小时的平均处理时间sql语句如下:
select AVG(TIMESTAMPDIFF(MINUTE,inserttime,deal_time)) from table1 where inserttime BETWEEN DATE_SUB(NOW(),INTERVAL 12 HOUR) and NOW() limit 100;