关于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
11500.html
cmysql相关文章
- 查询MySQL实现百亿级数据快速查询(mysql百亿级数据)
- swoole结合php的pdo mysql模式出现MySQL server has gone away详解编程语言
- Linux系统查看MySQL日志的方法(linux查看mysql日志)
- MySQL服务器移除:一个必须要注意的过程(mysql移除服务)
- MySQL数据库备份:实现安全、可靠的系统(mysql备份系统)
- MySQL秒杀:极速抢购手不及掌!(mysql秒杀)
- Mysql版本升级:从低到高改善系统性能(mysql版本过低)
- 名和密码MySQL:默认用户名和密码探索(mysql的默认用户)
- MySQL中的二进制储存系统(mysql二进制数据)
- MySQL登录注册系统:安全、便捷又可靠(mysql登录注册)
- 状态Win7系统查看MySQL服务状态(win7查看mysql)
- MySQL驱动:64位系统最佳选择(mysql驱动64位)
- MySQL远程使用:掌握基础知识,远程操作Mysql数据库。(mysql远程使用)
- 安装MySQL:一步步引导您轻松上路(mysql装在哪)
- 探寻Mysql最佳读物:推荐好的书籍解读数据库(mysql好的书籍)
- MySQL错误码:求解最佳解答(mysql 错误码)
- MySQL数据库详解:从入门到进阶,一网打尽!(mysql大全)
- 备份CRM系统MySQL数据备份保护数据不受灾害影响(crm系统的mysql)
- MySQL中ASC排序的详解(mysql 中asc)
- MySQL实现两表左关联快速查询数据(mysql两表左关联)
- Ubuntu系统安装MySQL数据库的指南(buntu安装mysql)
- 开始学习掌握使用bash进行MySQL操作(bash操作mysql)
- Windows系统如何使用CMD控制MySQL(cmd怎么控制mysql)
- MySQL 在 CMD 下的应用(cmd中的mysql命令)
- MySQL三方库增强功能提升效率(mysql 三方库)
- MySQL怎么做不想为数据库表设置主键怎么办(mysql不想设置主键)