因为业务须要统计一批数据。用到关于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时间操作函数和存储过程相关推荐

  1. mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数

    <Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...

  2. mysql查询触发器_mysql查看所有触发器以及存储过程等操作集合【转】

    1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND  TAB ...

  3. ecshop mysql 报错_ecshop数据库操作函数

    ecshop数据库操作函数 eschop二次开发一些常见的开发例子.来谈谈ecshop的数据库类和方法是如何处理数据库.让我们熟练掌握ecshop数据库的操作. 1:ecshop的数据库类实例子化对象 ...

  4. mysql substring用法_Mysql字符串截取函数SUBSTRING的用法说明

    函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...

  5. mysql相隔多长时间_Mysql 计算时间间隔函数

    mysql计算时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法,只要用一句SQL语句就可以办到了. MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法 ...

  6. mysql整理类型_Mysql 时间类型整理

    一.date_sub.SUBDATE.date_add select now(),  date_sub(now(),interval  1 minute),SUBDATE(now(),interval ...

  7. mysql 查询 集合_MySQL使用集合函数进行查询操作实例详解

    本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...

  8. mysql case默认_MySQL知识整理10.1—存储过程和函数

    数据科学探路者:MySQL知识整理9-索引​zhuanlan.zhihu.com 一.什么是存储过程? 简单的说,存储过程是一条或者多条SQL语句的集合,可视为批文件,但是其作用不限于批处理. 我们常 ...

  9. mysql往前一天同一时间_Mysql时间轴数据 获取同一天数据的前三条

    创建表数据 CREATE TABLE `praise_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `pic_id` va ...

最新文章

  1. redux logic_Redux-Logic简介
  2. prometheus+grafana+pushgateway+node-exporter+consul搭建监控系统
  3. python 之属性_Python之对象的属性
  4. 【反欺诈】互金欺诈与反欺诈
  5. 【Qt】Qt Creator中布局器详解
  6. oracle exp consistent,exp CONSISTENT=Y 原理:export前发出SET TRANSACTION READ ONLY命令
  7. 创建ListView的基本步骤
  8. Java Mail+MYSQL+Tomcate+jsp实现企业快信系统
  9. java内存分配空间大小,JVM内存模型及内存分配过程
  10. 苹果前CEO斯卡利变身创业导师:欲寻下个乔布斯
  11. c++ qt获取电脑的内存_Qt官方示例信号量
  12. r语言 图形一览_R语言实战(第2版):第三章 图形初阶(01)
  13. 我搭建Wiki网站的步骤
  14. JS仿淘宝网顶部的导航菜单
  15. 【数字全排列】LeetCode 31. Next Permutation
  16. c3p0使用 与批量生成
  17. java实习日志_Java毕业生校外实习日记
  18. 自己实现简单Java缓存类
  19. Textview属性Kotlin.Android
  20. 教女朋友学会用ESP8266实现wifi杀手——有固件

热门文章

  1. Qt 设置应用程序图标
  2. QT 生成二维码接口封装
  3. 【小米笔试题】二分查找算法的变形
  4. 泛函分析2——Normed Linear Spaces
  5. 强化学习6——policy gradient的变种State of the Art
  6. 深入java抽象类和接口
  7. switch两个账号合并_国行Nintendo Switch账号常见问题解答
  8. c++算术溢出_二进制安全之堆溢出(系列)——CTF环境配置
  9. arm汇编:.balignl伪指令理解
  10. 批处理命令 / echo