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

关于mysql查询数据库时间和系统时间差的更多相关文章

  1. mysql查询根据时间排序

    表数据: mysql查询根据时间排序,如果有相同时间则只查询出来一个 所以需要再判断,如果时间相同,则根据id进行降序排序

  2. mysql查询数据库大小和表

    每个mysql都有一个库information_schema,里面有一张表TABLES存储了所有数据库表的信息,因此,可以从这张表中查看数据库大小和表大小 查询数据库大小 ,),'GB') as da ...

  3. mysql 查询数据库或某张表有多大(字节)

    转载:https://www.cnblogs.com/diandiandidi/p/5582309.html 1.要查询表所占的容量,就是把表的数据和索引加起来就可以了 select sum(DATA ...

  4. [功能集锦] 002 - mysql查询数据库字典+导出+样式一键整合至excel

    写在前面: 因为工作时候经常遇到半路接手项目的情况,由于年代久远,数据库字典这块经常缺失.故写此篇,以便复用,也希望对大家有点帮助. 随笔内容不高级,如有不妥,不吝指正. 20190730-加了一些简 ...

  5. jdbc插入或查询数据库时间总是比实际时间少8小时原因

    mysql插入数据库的时间总是有问题,比实际时间要早8小时.检查是jdbc连接的url中配置的时区有问题,原先是 jdbc.url=jdbc:mysql://47.**.**.**:3306/yeey ...

  6. MySql 查询数据库中所有表名

    查询数据库中所有表名select table_name from information_schema.tables where table_schema='csdb' and table_type= ...

  7. MYSQL查询数据库表索引的硬盘空间占用

    查询数据库的占用 SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' , CONCA ...

  8. mysql查询数据库中包含某字段(列名)的所有表

    SELECT TABLE_NAME '表名',TABLE_SCHEMA '数据库名',ORDINAL_POSITION '顺序',COLUMN_NAME '字段',DATA_TYPE '类型' ,CH ...

  9. 【MySQL】MySQL查询数据库各表的行数

    #倒序查询数据库[各表记录数] use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA ...

随机推荐

  1. 使用windows桌面ftp上传文件到linux服务器

    首先在linux服务器上安装ftp [root@host2 test]#yum -y install ftp vsftpd [root@host2 test]#service vsftpd start ...

  2. WINFORM实现进程信息的查看,listview,点击,右键,右键菜单

    1.   程序设计要求 设计程序来获取计算机中的进程信息 2.程序设计流程图 3.程序设计亮点 (0)程序启动时加载guide引导使用视频 (1)使用Listview控件显示出所有控件的名称. (2) ...

  3. 130行C语言实现个用户态线程库——ezthread

    准确的说是除掉头文件,测试代码和非关键的纯算法代码(只有双向环形链表的ADT),核心代码只有130行左右,已经是蝇量级的用户态线程库了.把这个库取名为ezthread,意思是,这太easy了,人人都可 ...

  4. DIV上下居中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 【shell脚本实例】shell脚本统计单词频率、出现次数最多的n个单词

    1. 统计的对象words.txt,每个单词占一行(从简考虑了~) zjd@ubuntu:~/test$ cat word.txt used this count mysql count this u ...

  6. TP框架 增删查

    TP框架添加数据到数据库1.使用数组方式添加造模型对象 2.使用AR方式 强类型语言存在的方式 3.使用自动收集表单添加 :只能用POST方式,提交数据一个操作方法实现两个逻辑:A显示页面B得到数据 ...

  7. 基于dubbo的SSM(Spring,SpringMvc,Mybatis)整合的Maven多工程(下)

    上篇是SSM的maven单工程(http://www.cnblogs.com/yuanjava/p/6748956.html).中篇是 SSM的maven多工程(http://www.cnblogs. ...

  8. javascript基础-语法

    代表此属性ECMAScript 5(一般IE9+)才支持. 图解:—— 图解: undefined,null,NaN Infinity ECMAScript 5禁止修改 每个函数都是Function的 ...

  9. Linux(Debian、Ubuntu、Deepin等)安装最新版Chrome Unstable

    将下载源加入到系统的源列表 sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ ...

  10. 使用Windows Server 2012+ 搭建VPN 简单 高效 稳定

    前几天,在机缘巧合之下,买到了一台性能配置一般的腾讯云服务器(香港的),因为性能比较差,没啥太大用途,就想着试试搭建一个VPN,后来,经过多次尝试和查资料,总结出了一套几乎100%成功的教程,现在拿来 ...