写一个MySQL存储过程
参数:
起始时间
结束时间
要求:
将起始时间和结束时间内的的数据插入到临时中表
bd301表的字段
timer datetime
datasetName varchar(20)
valueMap varchar(255)
note varchar(255)
exceptionMap varchar(255)
表中部分数据为:
timer datasetName valueMap note exceptionMap
2022-01-11 11:19:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:20:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:21:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:22:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:23:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:24:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:25:00 db301-1 {"1"} DB301 {"1"}
2022-01-11 11:26:00 db301-1 {"1"} DB301 {"1"}
用不着存储过程。
insert into t
select * from bd301 where timer>='开始时间'
and timer<='结束时间'
存储过程写法:
DELIMITER $$
CREATE PROCEDURE synchData(IN startDate datetime,IN endDate datetime)
BEGIN
insert into t
select * from bd301 where timer>=startDate
and timer<=endDate
END $$;
DELIMITER;
关于使用存储过程传参数查询一段时间内的数据,你可以参考如下:
简单的插入数据存储过程就这样,如果涉及到逻辑判断啊等等操作,那就可能需要用到游标,然后去循环处理数据了
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertTemp`(IN `startDate` date,IN `endDate` date)
BEGIN
insert into temp
select * from bd301 where timer>=startDate
and timer<=endDate;
END