要求: 168小时 内 每隔1分钟查询 1次数据 总计 60*168条数据 应该怎么查询?时间间隔 mysql

解决方案 »

  1.   

    示例,自行修改开始、结束时间 :
    DELIMITER $$
     DROP PROCEDURE IF EXISTS tt$$
     CREATE PROCEDURE tt()
     BEGIN
     SET @i=1;
     SET @a=CONCAT(CURDATE(),' 00:00:00');
     insert into lsb values(date_add(@a, interval 10 minute));
      WHILE @i<=144 DO
     insert into lsb values(date_add(@a, interval 10 minute));
      
      SET @a=DATE_ADD(@a, INTERVAL 10 MINUTE);
      SET @i=@i+1;
      END WHILE;
      END$$
     DELIMITER ;
      

  2.   

    create procedure sp_test()
    begin
     declare nowtime datetime default '2013-01-01';
     select now() into nowtime;
     while nowtime <'2013-10-30' do
       select xxxx;
       select sleep(60);
       select now() into nowtime;
     end while;
    end
      

  3.   

    这个存储过程怎么用   例如我 要查询的 表 为 weather  字段为 temperature ,time 起始时间为
    2013-10-29 09:00:00  结束时间为  2013-10-29 16:00:00   每隔1分钟查询1次
      

  4.   

    这个存储过程怎么用   例如我 要查询的 表 为 weather  字段为 temperature ,time 起始时间为
     2013-10-29 09:00:00  结束时间为  2013-10-29 16:00:00   每隔1分钟查询1次 
      

  5.   


    生成每1分钟记录
    DROP PROCEDURE IF EXISTS `tt1`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `tt1`(A1 DATETIME,A2 DATETIME)
    BEGIN
      SET @a1=A1;
      WHILE @A1<=A2 DO
      INSERT INTO lsb VALUES(@A1);
      SET @a1=DATE_ADD(@a1, INTERVAL 1 MINUTE);
       END WHILE;
       END$$DELIMITER ;CALL tt1('2013-10-29 09:00:00','2013-10-29 16:00:00')
      

  6.   


    表 weather 和字段 temperature,time 加在哪啊  没用过存储过程  
      

  7.   

    创建所有时间临时表
     lsb,字段F1、F2,保存开始、结束时间
     :
     DELIMITER $$ USE `aa`$$ DROP PROCEDURE IF EXISTS `tt2`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `tt2`(A1 DATETIME,A2 DATETIME)
     BEGIN
     DECLARE II INT DEFAULT 1;
       SET @a1=A1;
       WHILE @A1<=A2 DO
       INSERT INTO lsb VALUES(@A1,DATE_ADD(@a1, INTERVAL IF(II=1,10,9) MINUTE));
       SET @a1=DATE_ADD(@a1, INTERVAL IF(II=1,11,10) MINUTE); 
       SET II=2;
        END WHILE;
        END$$ DELIMITER ; 调用:
     CALL TT2('2013-08-01 00:00:00','2013-08-02 00:00:00') 计算次数:
     select b.f1,b.f2,count(a.*) from weather a inner join lsb b on a.时间字段 between b.f1 and b.f2
     group by b.f1,b.f2 以此查询为数据源,用EXCEL之类的软件作图即可
      

  8.   

    这和我的要求的不一样啊  168小时 内 每隔1分钟查询 1次数据 总计 60*168条数据 应该怎么查询
    表名 weather 字段 temperature
      

  9.   

    在CALL TT2('2013-08-01 00:00:00','2013-08-02 00:00:00')中修改起始时间用下述SQL语句即可,自行修改字段名
     select b.f1,b.f2,count(a.temperature) from weather a inner join lsb b on a.时间字段 between b.f1 and b.f2
      group by b.f1,b.f2