• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql时间操作函数跟存储过程_mysql

mysql 搞代码 7年前 (2018-06-08) 153次浏览 已收录 0个评论

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》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql时间操作函数跟存储过程_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址