实用mysql统计函数

【按固定周期统计】

先看一条完整的sql语句:

select date_format(date_add(startDate, interval 8 hour), '%u') as period, count(1) as total from table1 group by period;

 解释:

date_add 时间增加,例如startDate字段时区差异为8小时,则可以使用date_add(startDate, interval 8 hour)在统计时增加8小时。

date_format 将时间转换成字符串,在按固定周期(如天、周、月等)进行统计时十分有用。用法为date_format(startDate, '%u')。第一个参数是日期/时间表达式,第二个参数是格式化字符,常用的有:

  • %Y-%m-%d为年月日,例如2014-09-28;
  • %u为周,周一为一周的开始日期,例如;
  • %U也是周,周日为一周的开始日期;
  • %m为月

【按时间差统计】

测试SQL语句:select timestampdiff(hour, '2014-09-29 16:00:00', '2014-09-29 18:00:00');

得到的结果是2

timestampdiff(interval,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

  • FRAC_SECOND 表示间隔是毫秒
  • SECOND 秒
  • MINUTE 分钟
  • HOUR 小时
  • DAY 天
  • WEEK 星期
  • MONTH 月
  • QUARTER 季度
  • YEAR 年

round(表达式, 精度) 返回将参数四舍五入,精度指小数点后面保留的位数。

猜你喜欢

转载自samjavaeye.iteye.com/blog/2123760