mysql的存储过程

CREATE DEFINER = 'root'@'localhost' PROCEDURE `usp_CreateBioFeedBackDataTest`(
        IN PatientIDMin INTEGER(11),
        IN PatientIDMax INTEGER(11),
        IN TestDateMin DATETIME,
        IN TestDateMax DATETIME,
        IN SDIDFirst INTEGER(11)
    )
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
    declare pID int;
	declare testDate DateTime;
    declare preDate DateTime;
    declare i int;
    declare k int;
    declare strDate varchar(30);
    declare strPID varchar(10);
    set testDate=TestDateMin;
    set pID=PatientIDMin;
    set i=SDIDFirst;
    set k=0;
    set preDate=TestDateMin;
    
    while testDate<=TestDateMax do
    	set pID=PatientIDMin;
    	while pID<=PatientIDMax do
        	set strDate=DATE_FORMAT( testDate,   '%Y%m%d%H%i%s');
            set strPID=cast(pID as char(10));
        	INSERT INTO `rmsms_signaldata` (SDID,`PatientID`, `TestDate`, `SignalType`, `FilePath`, `IsAnalysed`, `PPGFilePath`, `HR`, `FreqFilePath`, `MeanHR`, `MaxHR`, `MinHR`, `BioTrainTime`, `BreathIn`, `Halt`, `BreathOut`, `Hold`, `IsValid`, `IsDownload`, `TimeZone`) VALUES 
  				(i, pID, testDate, 1, CONCAT('\\rmsms\\StressDir\\',strPID,'\\',strDate,'.dat'), 1, 
          		  CONCAT('\\rmsms\\StressDir\\',strPID,'\\',strDate,'PPG.txt'), '69,80,73,75,80,84,84,88,90,95,90,86,90,86,86,78,82,78,84,84,80,82,78,84,84,80,80,78,82,78,82,78,82,80,86,84,88,92,88,90,92,88,88,86,92,88,86,77,82,80,80,78,78,84,86,86,82,84,82,82,86,82,78,78,86,84,80,86,92,95,88,86,86,90,86,82,77,75,80,40,84,90,90,86,86,80,78,77,75,71,71,73,77,78,78,84,78,82,80,78,88,84,92,95,90,88,92,90,95,88,95,100,95,97,88,82,77,77,78,77,78,82,86,88,86,82,78,77,82,78,75,72,71,78,78,73,75,75,77,78,82,82,72,78,78,82,80,82,84,80,92,88,86,78,77,78,78,82,88,86,88,90,75,72,73,69,71,68,75,75,80,84,80,75,77,80,75,75,82,77,77,80,78,82,88,88,86,82,80,84,82,80,82,86,82,78,78,86,82,77,75,75,75,75,75,77,82,82,78,78,84,84,82,78,82,82,82,82,80,86,86,82,77,75,73,75,78,75,75,77,82,77,75,73,75,82,78,78,78,78,84,78,77,73,77,82,78,75,75,78,82,80,73,71,75,75,73,75,84,86,80,82,78,84,86,82,84,86,80,82,86,84,78,88,86,86,84,88,97,90,86,86,90,90,95,92,86,86,86,88,84,84,82,86,86,82,80,75,80,90,92,86,67,73,77,86,86,95,88,78,80,80,84,84,84,77,77,82,80,80,84,82,84,72,78,82,80,84,82,78,77,78,90,69,75,82,82,80,82,71,73,80,78,84,78,82,78,82,78,82,77,82,77,80,86,82,82,77,77,84,80,82,86,82,88,80,75,86,86,73,77,86,86,84,84,84,77,78,80,73,72,75,84,86,86,86,82,75,75,78,73,73,77,82,78,82,82,86,84,82,84,86,82,80,77,78,82,82,77,84', 
                  CONCAT('\\rmsms\\StressDir\\',strPID,'\\',strDate,'Freq.txt'),
           		  81, 100, 40, 5, 4, 1, 5, 1, 0, 0, '+0800');
        	INSERT INTO `rmsms_stressresult` (`SDID`,  `StressVal`,  `RenitentAbility`,  `ANSBalance`,  `ANSActivity`,  `SDNN`,  `RMSSD`,  `LFNorm`,  `HFNorm`,  `Ratio`,  `NNAVG`) 
				VALUE (i,80,80,90,70,80,85,52,48,1.23,85);
                
        	set i=i+1;
            set pID=pID+1;
        end while;
        set k=k+1;
        if(k<3) THEN
        	set testDate=DATE_ADD(testDate,INTERVAL 2 HOUR); 
        ELSE
        	set preDate=DATE_ADD(preDate,INTERVAL 1 DAY); 
            set testDate=preDate;
        END IF;
     end while;
END;

mysql的存储过程,其中的几个函数的应用:

set strDate=DATE_FORMAT( testDate,   '%Y%m%d%H%i%s'); //格式化日期,将日期转化成字符串
DATE_ADD(testDate,INTERVAL 2 HOUR);   //日期加某一段时间
 set strPID=cast(pID as char(10)); //将整型转化成字符串
CONCAT('\\rmsms\\StressDir\\',strPID,'\\',strDate,'.dat')  //字符串拼接




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值