如果最初发送的值为零,我需要将2160000赋给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,如果0是发送的内容。
最佳答案
我没有测试过这些,但它们可能会指引你正确的方向。
选项1:使用字符串比较比较fromDate
...
IF fromDate = "0" THEN
SET @fromDate = '21600000';
ELSEIF fromDate > 0 THEN
...
ELSE
...
END IF;
选项2:从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
另外,您可能需要检查/处理:
一。fromDate可以是一个float吗?
2。fromDate可以为空吗?
关于mysql - 为IN变量增加值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20831629/