cl_303303303 发表于 2017-12-13 08:43:26

mysql时间操作函数和存储过程

--*将表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(&quot;2014-09-01 00:00:00&quot;,&quot;2014-09-2 00:00:00&quot;);
  
页: [1]
查看完整版本: mysql时间操作函数和存储过程