mysql存储过程时间_mysql时间操作函数和存储过程
因为业务须要统计一批数据。用到关于mysql的时间操作函数和存储过程,问题已经基本解决。把过程记录下:
1. mysql的语句中不支持直接用循环。循环仅仅能在存储过程中使用。
2. 写为文件时,注意一些隐藏的字符,造成语法错误。本例中凝视中包括一些不可见字符。没有找到。
3. 存储过程中尽量多使用分好,切割开语句。
本例中 drop一句最初没有写。导致一直有错。
4. 时间函数非常强大,能够避免一些工作。http://www.cnblogs.com/ggjucheng/p/3352280.html
5. sql语句的优化非常重要。本例中仅攻克了问题,但数据量太大。存储过程执行了非常久。期待有人能帮忙优化while语句中的优化。
以下贴代码了:
--*将表test.transport20140901表中的数据依照每五分钟一个间隔,统计各个路口的车流数量r
--*@start_time 起始时间 是整点时间的五分钟间隔 如 2014-09-01 00:20:00
--*@end_time 终止时间 是整点的五分钟间隔且大于start_time 如 2014-09-01 01:00:00
--*统计范围包括起始时间,但不包括终止时间
delimiter $
drop procedure transport_status;
create procedure transport_status(start_time datetime,end_time datetime)
begin
declare mid_start_time datetime;
declare mid_end_time datetime;
set mid_start_time=start_time;
set mid_end_time=date_add(start_time, interval 5 minute);
lab: while mid_start_time < end_time do
insert into
test.transport_status(stamp,stamp_time,address,car_count)
(select
FLOOR(UNIX_TIMESTAMP(time)/300) as stmp,
date_format(mid_end_time,'%Y-%m-%d %H:%i:%s') as tm,
address,
count(address) as cnt
from
test.transport20140901
where
time > date_add(mid_start_time, interval -1 second)
and time < mid_end_time
group by address);
set mid_start_time=date_add(mid_start_time, interval 5 minute);
set mid_end_time=date_add(mid_end_time, interval 5 minute);
end while lab;
end $
delimiter ;
call transport_status("2014-09-01 00:00:00","2014-09-2 00:00:00");
mysql存储过程时间_mysql时间操作函数和存储过程相关推荐
- mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数
<Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...
- mysql查询触发器_mysql查看所有触发器以及存储过程等操作集合【转】
1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TAB ...
- ecshop mysql 报错_ecshop数据库操作函数
ecshop数据库操作函数 eschop二次开发一些常见的开发例子.来谈谈ecshop的数据库类和方法是如何处理数据库.让我们熟练掌握ecshop数据库的操作. 1:ecshop的数据库类实例子化对象 ...
- mysql substring用法_Mysql字符串截取函数SUBSTRING的用法说明
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- mysql相隔多长时间_Mysql 计算时间间隔函数
mysql计算时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法,只要用一句SQL语句就可以办到了. MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法 ...
- mysql整理类型_Mysql 时间类型整理
一.date_sub.SUBDATE.date_add select now(), date_sub(now(),interval 1 minute),SUBDATE(now(),interval ...
- mysql 查询 集合_MySQL使用集合函数进行查询操作实例详解
本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...
- mysql case默认_MySQL知识整理10.1—存储过程和函数
数据科学探路者:MySQL知识整理9-索引zhuanlan.zhihu.com 一.什么是存储过程? 简单的说,存储过程是一条或者多条SQL语句的集合,可视为批文件,但是其作用不限于批处理. 我们常 ...
- mysql往前一天同一时间_Mysql时间轴数据 获取同一天数据的前三条
创建表数据 CREATE TABLE `praise_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `pic_id` va ...
最新文章
- redux logic_Redux-Logic简介
- prometheus+grafana+pushgateway+node-exporter+consul搭建监控系统
- python 之属性_Python之对象的属性
- 【反欺诈】互金欺诈与反欺诈
- 【Qt】Qt Creator中布局器详解
- oracle exp consistent,exp CONSISTENT=Y 原理:export前发出SET TRANSACTION READ ONLY命令
- 创建ListView的基本步骤
- Java Mail+MYSQL+Tomcate+jsp实现企业快信系统
- java内存分配空间大小,JVM内存模型及内存分配过程
- 苹果前CEO斯卡利变身创业导师:欲寻下个乔布斯
- c++ qt获取电脑的内存_Qt官方示例信号量
- r语言 图形一览_R语言实战(第2版):第三章 图形初阶(01)
- 我搭建Wiki网站的步骤
- JS仿淘宝网顶部的导航菜单
- 【数字全排列】LeetCode 31. Next Permutation
- c3p0使用 与批量生成
- java实习日志_Java毕业生校外实习日记
- 自己实现简单Java缓存类
- Textview属性Kotlin.Android
- 教女朋友学会用ESP8266实现wifi杀手——有固件