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. Adobe Fireworks CS6 Mac破解版

    Mac下一款快速建站的软件--Adobe Fireworks CS6,小子这里有时间就分享出来给更多需要的朋友. Adobe Fireworks CS6能让您在弹指间创作精美的网站和移动应用程序设计, ...

  2. iStat for mac

    iStat for mac 电脑硬件信息检测软件,安装完成后它位于"系统偏好设定"的应用程序面板,让您从选单列监测系统的各项丰富资讯,又不会占用使用者太大的桌面空间,提供的信息包括 ...

  3. 为什么重写equals时必须重写hashCode方法?(转发+整理)

    为什么重写equals时必须重写hashCode方法? 原文地址:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452206.html ...

  4. 惊艳发现VS工具python项目Search Paths的应用

    之前,在没有发现VS工具python项目Search Paths的应用时,举个例子:假如项目的文件目录如下: maintest/maintest.py想要使用common/tools.py文件时,不得 ...

  5. 【charger battery 充電 充電器 電池】停充的種類

    Precondition : 配有 power path 功能的 BQ2589 手機. 接上 pc usb port. Origin : 今天有同事問我, 手機是否可以在接上 pc usb port ...

  6. 全局精确流量调度新思路-HttpDNS服务详解

    但凡使用域名来给用户提供服务的互联网企业,都或多或少地无法避免在有中国特色的互联网环境中遭遇到各种域名被缓存.用户跨网访问缓慢等问题.那么对于腾讯这样的域名数量在10万级别的互联网公司来讲,域名解析异 ...

  7. JAVA POI 应用系列(1)--生成Excel

    POI简介(官网:http://poi.apache.org/)     Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office ...

  8. nodeJS之进程process对象

    前面的话 process对象是一个全局对象,在任何地方都能访问到它,通过这个对象提供的属性和方法,使我们可以对当前运行的程序的进程进行访问和控制.本文将详细介绍process对象 概述 process ...

  9. 侯捷STL学习(四)--allocator和容器时间的实现关系

    第十一节 分配器 分配器的好坏影响到容器的性能 operator new()里面调用malloc D:\Program Files (x86)\Microsoft Visual Studio 12.0 ...

  10. iOS 手势

    一.看这里 二.抽象类  UIGestureRecognizer 继承于该类的有7类:轻点,捏合,拖拽,滑动,长按,旋转,边缘滑动; 一个手势可以绑定多个事件  - (void)addTarget:( ...