定时任务:
现在是mysql定时任务的带参数的部分;
:参数的前面需要IN
基本格式:
Sp_Update_Distance( in 变量名 变量类型,
in 变量名 变量类型,
in 变量名 变量类型,
in 变量名 变量类型,
in 变量名 变量类型);
下面的语句实现的作用:
(1)#1:先去创建一个存储过程,里面有5个参数;
根据具体的情况:需要的是车牌号,里程,日期,
仍然选择5个参数是为了:和*经理方面的程序保持一致;
其中使用到是:License(车牌号);Distance(里程);G_Date(日期)
#2:声明了2个里程,因为下面会对里程进行删除操作;然后又需要插入操作;
所以:这样做是将需要的数据提前保留在一个声明的变量中。
#3: 删除数据;(满足输入参数的那条数据)
#4:添加一条数据(经过计算得到的那条里程数据)
总结:这个存储过程可以修改比如今天是2021年1月4日,
所以可以修改之前的任意一天的数据;
```java
DELIMITER $$
USE `subiaodb`$$
DROP PROCEDURE IF EXISTS `Sp_Update_Distance`$$
CREATE DEFINER = `root` @`localhost` PROCEDURE `Sp_Update_Distance` ( #1
IN Simcard_No CHAR(11),
IN License VARCHAR (20),
IN LColor CHAR(1),
IN Distance FLOAT,
IN G_Date DATETIME
)
BEGIN
DECLARE Mileage3 DOUBLE ; #2
DECLARE Mileage4 DOUBLE ;
SELECT
mileage1 INTO Mileage3
FROM
fuelconsumption
WHERE plateNo = License
AND DATE_FORMAT(staticDate, '%Y-%m-%d') = DATE_FORMAT(G_Date, '%Y-%m-%d') ;
SELECT
mileage2 INTO Mileage4
FROM
fuelconsumption
WHERE plateNo = License
AND DATE_FORMAT(staticDate, '%Y-%m-%d') = DATE_FORMAT(G_Date, '%Y-%m-%d') ;
DELETE #3
FROM
fuelconsumption
WHERE plateNo = License
AND DATE_FORMAT(staticDate, '%Y-%m-%d') = DATE_FORMAT(G_Date, '%Y-%m-%d') ;
INSERT INTO fuelconsumption ( #4
plateNo,
staticDate,
mileage,
deleted,
companyId,
gas,
gas1,
gas2,
HOUR,
intervalType,
mileage1,
mileage2,
createDate
)
VALUES
(
License,
G_Date,
Distance,
b'0',
0,
0,
0,
0,
0,
1,
Mileage3,
Mileage4,
DATE_ADD(G_Date, INTERVAL 1 DAY)
) ;
END $$
DELIMITER ;
有的时候mysql的存储过程需要提前退出;类似sqlserver的return;
https://www.cnblogs.com/Braveliu/p/10149070.html(这是转载一个前辈的
)