zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

关于mysql查询数据库时间和系统时间差详解编程语言

mysql系统编程语言 详解 时间 关于 时间差 查询数据库
2023-06-13 09:20:35 时间

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

11500.html

cmysql