zoukankan      html  css  js  c++  java
  • 关于mysql查询数据库时间和系统时间差

    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

  • 相关阅读:
    浏览器兼容性问题
    浏览器对象的属性和方法
    js总结体会
    css样式总结体会
    HTML标签类总结
    如何自动化实现二级域名访问,类似博客
    php
    require.js
    gulp
    javascript
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/7079581.html
Copyright © 2011-2022 走看看