У меня есть хранимая функция в MySQL:Сохраненная функция в MySQL не соответствует датам, предоставленным пользователем?
CREATE FUNCTION `login_count`(o INT, start_date DATE, end_date DATE) RETURNS INT
READS SQL DATA
BEGIN
DECLARE total_count INT;
SELECT COUNT(*) INTO total_count FROM logins as l WHERE `order_id` = o && modified BETWEEN start_date AND end_date;
RETURN total_count;
END
Довольно основные, принимает идентификатор, дата начала и дату окончания и возвращает количество логинов для этого диапазона дат. Всякий раз, когда я запускаю его, я получаю обратно 0. Если я не удалял раздел даты предложения where. Затем он возвращает фактическое число. ИЛИ если я просто вручную помещаю даты в хранимую функцию, это работает ... Так что это не проблема дат, но только когда я даю даты в списке параметров, это не нравится.
Любые мысли относительно того, что могло бы случиться так? Тот факт, что я могу просто вручную помещать даты в хранимую функцию, и он работает, действительно меня пугает. Это не похоже на то, что здесь происходит много, что может испортиться, поэтому я как бы потерялся, как попробовать.
Также существует способ отладки хранимых функций/процедур. Я просто получаю 0 назад, но есть ли способ отладить это, чтобы попытаться выяснить, что может произойти?
Спасибо за подсказку. Я попробую это, чтобы отладить это. Что касается даты, вот как я ее называю. SELECT login_count (3250, '2009-05-31', '2009-06-31'); Какой правильный формат, но кто знает, что происходит. Я попробую @ вещь и опубликую больше информации. –
Хех, ваш комментарий заставил меня вернуться и поиграть с датами. Я все время использовал YYYY-MM-31 в конце месяца, и он всегда работал. Но почему-то в этом случае ему не понравилось 31 день в июне :) –
Хех! Хорошо, я рад, если мое предложение помогло вам заметить настоящую проблему. –