Descubrí que no puede tener condicionales fuera del procedimiento almacenado en mysql. Por eso el error de sintaxis. Tan pronto como puse el código que necesitaba entre
BEGIN
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;
WHILE(@daycount < @totaldays) DO
IF (WEEKDAY(@checkweekday) < 5) THEN
SET @workdays = @workdays+1;
END IF;
SET @daycount = @daycount+1;
SELECT ADDDATE(@checkweekday, INTERVAL 1 DAY) INTO @checkweekday;
END WHILE;
END
Solo para los demás :
Si no está seguro de cómo crear una rutina en phpmyadmin, puede poner esto en la consulta SQL
delimiter ;;
drop procedure if exists test2;;
create procedure test2()
begin
select ‘Hello World’;
end
;;
Ejecute la consulta. Esto creará un procedimiento almacenado o una rutina almacenada llamada test2. Ahora vaya a la pestaña de rutinas y edite el procedimiento almacenado para que sea lo que desea. También sugiero leer http://net.tutsplus.com/ tutoriales/una-introducción-a-los-procedimientos-almacenados/ si está comenzando con los procedimientos almacenados.
La función first_day que necesita es:-mysql">¿Cómo obtener el primer día de cada mes correspondiente en mysql?
Mostrando que el Procedimiento está funcionando Simplemente agregue la siguiente línea debajo de END WHILE y arriba de END
SELECT @curmonth,@curmonthname,@totaldays,@daycount,@workdays,@checkweekday,@checkday;
Luego use el siguiente código en la ventana de consulta SQL.
call test2 /* or whatever you changed the name of the stored procedure to */