我创建了一个带有日期输入参数的过程。我想知道是否可以设置检查输入值是否为空的条件。我告诉你我的代码:
<div><img u="image" src="http://example.com/gallery/01" /></div>
<div><img u="image" src="http://example.com/gallery/02" /></div>
<div><img u="image" src="http://example.com/gallery/03" /></div>
<div><img u="image" src="http://example.com/gallery/04" /></div>
.....
CREATE PROCEDURE xxx.yyy(IN l_day DATE)
...
DECLARE l_today DATE;
我希望能够通过以下输入调用此过程:
IF l_day=NULL THEN SET l_today=CURDATE();
ELSE SET l_today=l_day;
END IF;
或
call xxx.yyy('2015-07-01')
你认为这是可能的吗?感谢
答案 0 :(得分:0)
您可以设置条件,但应始终将参数传递给存储过程。
DELIMITER //
CREATE PROCEDURE `yyy`(IN `l_day` DATE)
BEGIN
DECLARE `l_today` DATE DEFAULT CURDATE();
IF `l_day` IS NOT NULL THEN
SET `l_today` := `l_day`;
END IF;
SELECT `l_today`;
END//
DELIMITER ;
SET @`l_day` := '2015-07-01';
CALL `yyy`(@`l_day`);
SET @`l_day` := NULL;
CALL `yyy`(@`l_day`);
CALL `yyy`(); -- FAIL