1. MySQL数据库表中有两个时间的字段,需要计算他们的时间差:

(1)datediff函数来表示时间差

基本语法:

DATEDIFF(datepart,startdate,enddate)

说明:

datepart可以指定时间单位,天,小时,分钟等,但是

经过我试验, DATEDIFF(startdate,enddate),不能指定天,时,分,秒等参数, 似乎只能计算天数差

例子:

SELECT DATEDIFF(day,'2008-12-29','2008-12-30')

SELECT DATEDIFF ( '2010-04-23 17:53:38', '2010-04-22 15:49:43')

(2)TIMESTAMPDIFF(datepart,startdate,enddate)

例子:

SELECT TIMESTAMPDIFF(HOUR, '2010-04-23 17:53:38', '2010-04-22 15:49:43')

可以指定结果的单位

小时:hour

秒:second

...

2.表中有两个时间的字段(开始时间和结束时间),使用group  by进行分组,计算每组的平均时间差。

需要先计算每条数据的时间差,再使用sum()将时间差进行求和。最后在代码中计算平均数。

(1)

select

sum(TIMESTAMPDIFF(SECOND,b_time,f_time))  time

from table

group by …;

这样虽然可以一步到位,但是经过我的实验,速度特别的慢

(2)sql语句优化:

先使用TIMESTAMPDIFF,获得一张新表,再在新表的基础上分组并sum()求和,虽然是两步操作,但是查询速度提高很多:

select a.*,sum(a.time) time2,

from

(select

*,

TIMESTAMPDIFF(SECOND,b_time,f_time)  as time

from table) a

group by …;

本文转自:http://blog.csdn.net/zhanglei500038/article/details/71357415

最新文章

  1. mysql 链接失败(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES))
  2. jq 获取元素的宽度时,如何取得小数部分
  3. load()方法---------jQuery动态加载html
  4. 安卓代码覆盖率:android studio+ gradle+jacoco
  5. ubuntu-12.10-server安装图形界面
  6. Unity2.0容器自动注册机制
  7. UITableViewCell 自适应高度 ios8特性
  8. 如何让你的Apache支持include文件解析和支持shtml的相关配置
  9. Linux常见命令(二)
  10. 【Arduino】2017年电子设计大赛B题 滚球控制系统|板球系统
  11. remove-weknow-ac from mac chrome
  12. CentOS7 yum安装配置 drbd-84-utils (外部模式)
  13. SpringMVC处理跨域请求时的一个注意事项
  14. bzoj3029 守卫者的挑战 (多维dp)
  15. HTML5 多媒体音视频处理
  16. 框架流程图绘制工具OmniGraffle 7 for Mac
  17. C#下编程完成IIS网络App的权限设置
  18. 微信小程序 --- model弹框
  19. [TypeScript] Work with DOM Elements in TypeScript using Type Assertions
  20. SpringBoot_10_打成jar包后使用外部配置文件中的配置来启动工程

热门文章

  1. 怎么在vue中使用less
  2. xml 和html 语言区别
  3. Javascript版-显示相应图片的详细信息
  4. jQuery-强大的jQuery选择器、过滤器
  5. kafka 0.8.2 消息生产者 KafkaProducer
  6. JS 正则表达式否定匹配(正向前瞻)
  7. VR上天了!全景商业化落地了!——VR全景智慧城市
  8. Windows 7 蓝屏代码大全 & 蓝屏全攻略
  9. 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”的解决方法!
  10. 走进BFC