如果最初发送的值为零,我需要将 21600000 分配给 fromDate
我现在的代码是
CREATE PROCEDURE reportFreeCooling(
IN fromDate VARCHAR (50),
IN toDate VARCHAR (50),
IN timeZone VARCHAR (50)
)
BEGIN
DECLARE startDate VARCHAR (50);
DECLARE endDate VARCHAR (50);
DECLARE startDateOriginal VARCHAR (50);
DECLARE mylogID INT;
DECLARE myItemId varchar (50);
DECLARE myItemId2 varchar (50);
DECLARE xHours varchar (50);
DECLARE endHoursNull varchar(50);
DECLARE endHoursNotNull varchar (50);
当然还有其余的存储过程。其余的都是正确的,我只需要知道如果发送的是零,如何更改 fromDate。
最佳答案
我还没有测试过其中的任何一个,但它们可能会为您指明正确的方向。
选项 1:使用字符串比较来比较 fromDate ...
IF fromDate = "0" THEN
SET @fromDate = '21600000';
ELSEIF fromDate > 0 THEN
...
ELSE
...
END IF;
选项 2:将 fromDate 从 varchar 转换为 int
DECLARE fromDateInt INT;
SELECT CONVERT(fromDate as SIGNED) INTO fromDateInt;
IF fromDate = 0 THEN
SET @fromDate = '21600000';
...
Cast from VARCHAR to INT - MySQL
此外,您可能需要检查/处理:
1. fromDate可以是float吗?
2. fromDate 可以为 NULL 吗?
关于mysql - 向 IN 变量添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20831629/