Saya telah menemukan bahwa Anda tidak dapat memiliki persyaratan di luar prosedur tersimpan di mysql. Inilah sebabnya mengapa kesalahan sintaks. Segera setelah saya memasukkan kode yang saya butuhkan di antara
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
Hanya untuk orang lain :
Jika Anda tidak yakin cara membuat rutin di phpmyadmin, Anda dapat memasukkan ini ke dalam kueri SQL
delimiter ;;
drop procedure if exists test2;;
create procedure test2()
begin
select ‘Hello World’;
end
;;
Jalankan kueri. Ini akan membuat prosedur tersimpan atau rutin tersimpan bernama test2. Sekarang buka tab rutinitas dan edit prosedur tersimpan menjadi yang Anda inginkan. Saya juga menyarankan membaca http://net.tutsplus.com/ tutorials/an-introduction-to-stored-procedures/ jika Anda memulai dengan prosedur tersimpan.
Fungsi first_day yang Anda butuhkan adalah:Bagaimana cara mendapatkan hari pertama setiap bulan yang sesuai di mysql?
Menunjukkan Prosedur berfungsi Cukup tambahkan baris berikut di bawah END WHILE dan di atas END
SELECT @curmonth,@curmonthname,@totaldays,@daycount,@workdays,@checkweekday,@checkday;
Kemudian gunakan kode berikut di Jendela Kueri SQL.
call test2 /* or whatever you changed the name of the stored procedure to */
CATATAN: Jika Anda menggunakan ini, harap diingat bahwa kode ini tidak memperhitungkan hari libur nasional (atau hari libur apa pun).