Я хочу создать хранимую функцию, в которой, если гость сделал резервирование в конкретную дату, он возвращает адрес электронной почты гостя, а если он этого не сделал, он возвращает ноль. Я хочу использовать pID и запрашиватьСохраненная функция.Номера с видом на 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 ;