У меня есть следующий код MySQL:
DELIMITER $$
CREATE FUNCTION durationInMinutes(id INT)
RETURNS INT DETERMINISTIC
BEGIN
DECLARE Minutes INT;
SET Minutes =
(SELECT TIME_TO_SEC(TIMEDIFF(timeDeparture, timeArrival)) FROM AirRoute
WHERE pk_id = id) / 60;
RETURN Minutes;
END$$
DELIMITER;
По сути, эта функция рассчитывает продолжительность полета в минутах.Параметр - это идентификатор рейса.По какой-то причине эта функция всегда возвращает NULL.Я даже проверил это:
SELECT (SELECT TIME_TO_SEC(TIMEDIFF(timeDeparture, timeArrival)) FROM AirRoute
WHERE pk_id = 925) / 60;
Это возвращает правильный ответ, если я поставлю id = 925, так что может быть что-то не так с оператором RETURN.