Я хотел бы создать хранимую процедуру для MySQL, которая вычисляет количество деловых или рабочих дней в течение месяца (рабочие дни - с понедельника по пятницу).
Это синтаксическая ошибка, однако я не знаю, что такое синтаксическая ошибка. Все это говорит мне:
1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного использования синтаксиса около 'WHILE (@daycount < @totaldays) DO IF (WEEKDAY (@checkweekday) < 6) THEN 'в строке 2
Моя синтаксическая ошибка заключается в следующем:
WHILE(@daycount < @totaldays) DO
IF (WEEKDAY(@checkweekday) < 6) THEN
Мой код:
SELECT MONTH(CURDATE()) INTO @curmonth;
SELECT MONTHNAME(CURDATE()) INTO @curmonthname;
SELECT DAY(LAST_DAY(CURDATE())) INTO @totaldays;
SELECT FIRST_DAY(CURDATE()) INTO @checkweekday;
SELECT DAY(@checkweekday) INTO @checkday;
SET @daycount = 0;
SET @workdays = 0;
BEGIN
WHILE(@daycount < @totaldays) DO
IF (WEEKDAY(@checkweekday) < 6) THEN
SET @workdays = @workdays+1;
END IF;
SET @daycount = @daycount+1;
SELECT ADDDATE('@checkweekday', INTERVAL 1 DAY) INTO @checkweekday;
END WHILE;
END;
SELECT @workdays;
Может ли кто-нибудь помочь?
UPDATE Я получаю ту же ошибку со следующим битом кода, поэтому он, вероятно, имеет какое-то отношение к этому:
SET @workdays = 0;
IF (WEEKDAY('2013-06-13') < 6) THEN
SET @workdays = @workdays+1;
END IF;
SELECT @workdays;