zoukankan      html  css  js  c++  java
  • 同表复制修改日期的procedure

    • 同表复制数据,让其日期增加

      1. 算出总共的天数,用group by 分类后的. space
      2. 提前求出第一块数据的总和 sum = select count(*) from tbl_event;
      3. 固定操作第一块的话,用limit 限制, select * from tbl_event limit 0,sum;
      4. 把原始数据当成一整块.移动一次后成两块. (st_date,interval space day) 第一次移动
      5. 第二次移动的话,还是操作第一块,但是让interval数据+ (stdate,interval space*2 day) changeDate(in multiple int) 这个参数是指,要把现有数据的日期增加几倍,比如现在数据是2条,multiple=1执行结果是4条数据,而且数据stdate 是递增的
    • 代码实现

      
      DELIMITER $
      DROP PROCEDURE IF EXISTS changeDate$
      CREATE PROCEDURE changeDate (IN multiple int)
      BEGIN
        DECLARE i int DEFAULT 1;
        DECLARE _space int DEFAULT 1;
        DECLARE _sum int DEFAULT 1;
        SELECT
          COUNT(1) INTO _space
        FROM (SELECT
            te.st_date
          FROM A te
          GROUP BY te.st_date) temp;
        SELECT
          COUNT(*) INTO _sum
        FROM A te;
      IF multiple > 0 THEN
          WHILE i <= multiple DO
            INSERT INTO A (
            st_date
           )
              SELECT
      
                DATE_ADD(st_date, INTERVAL _space * i DAY) AS st_date,
      
              FROM A LIMIT 0, _sum;
            SET i := i + 1;
          END WHILE;
        END IF;
       END$
       DELIMITER ;
  • 相关阅读:
    ASP.NET2.0轻松解决统计图表
    SQL中日期比对 CONVERT转化函数的用法
    闭包理解?
    测试网站速度
    table js(转载)
    js构造造函数
    前端开发 优化(转载)
    使用Gzip压缩提升WEB服务器性能
    在线优化
    IE中的CSS3不完全兼容方案
  • 原文地址:https://www.cnblogs.com/hxn-fight/p/5942607.html
Copyright © 2011-2022 走看看