我想创建一个存储函数,如果来宾在特定日期进行了预订,它将返回来宾的电子邮件,如果没有,则返回null。我想使用pID和begindate作为存储的功能。已预定开始日期为0000-00-00的房间。我什至无法创建存储函数,它已经给了我错误。怎么了?我需要添加什么才能退回邮件? 我该怎么做?
我当前的数据库:
pID |begindate | enddate | mail
------------------------------------------------------
COD12 | 2014-07-15 | 2014-07-18 | z@yahoo.com
COD400 | 2014-07-20 | 2014-07-21 | q@hotmail.com
KOD12 | 0000-00-00 | |
COD600 | 2014-07-04 | 2014-07-12 | h@gmail.com
MOD10 | 0000-00-00 | |
所以我想运行存储的函数:
SELECT Stored_Function('COD12','2014-07-15')
这将返回:
| Stored_Function('COD12','2014-07-15') |
------------------------------------------
| 2014-07-15 |
这将返回Null:
SELECT Stored_Function('COD12','2014-07-16')
| Stored_Function('COD12','2014-07-16') |
------------------------------------------
| Null |
我尝试过但没有奏效的东西:
DELIMITER $$
CREATE FUNCTION Stored_Function(i_pId int, begindate DATE) RETURNS DATE
BEGIN
DECLARE v_date DATE;
SET v_date =
(
SELECT begindate
FROM tab
WHERE pId = i_pId ;
);
IF v_date = '0000-00-00' THEN
SET mail = NULL;
END IF;
RETURN mail;
END
$$
DELIMITER ;