मैंने पाया है कि आपके पास MySQL में संग्रहीत प्रक्रिया के बाहर सशर्त नहीं हो सकते हैं। यही कारण है कि वाक्यविन्यास त्रुटि। जैसे ही मैंने वह कोड डाला जिसकी मुझे आवश्यकता थी
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
सिर्फ दूसरों के लिए :
यदि आप सुनिश्चित नहीं हैं कि phpmyadmin में एक रूटीन कैसे बनाया जाए, तो आप इसे SQL क्वेरी में डाल सकते हैं
delimiter ;;
drop procedure if exists test2;;
create procedure test2()
begin
select ‘Hello World’;
end
;;
क्वेरी चलाएँ। यह एक संग्रहीत कार्यविधि या संग्रहीत दिनचर्या बनाएगा जिसका नाम test2 है। अब रूटीन टैब पर जाएं और संग्रहीत कार्यविधि को संपादित करें जो आप चाहते हैं। मैं http://net.tutsplus.com/ पढ़ने का भी सुझाव देता हूं। ट्यूटोरियल/एक परिचय-से-संग्रहीत-प्रक्रिया/ यदि आप संग्रहित प्रक्रियाओं से शुरुआत कर रहे हैं।
पहला_दिन का कार्य जो आपको चाहिए वह है:-mysql">mysql में प्रत्येक महीने का पहला दिन कैसे प्राप्त करें?
प्रक्रिया दिखाना काम कर रहा है बस निम्न पंक्ति को END WHILE और ऊपर END के नीचे जोड़ें
SELECT @curmonth,@curmonthname,@totaldays,@daycount,@workdays,@checkweekday,@checkday;
फिर SQL क्वेरी विंडो में निम्न कोड का उपयोग करें।
call test2 /* or whatever you changed the name of the stored procedure to */
नोट: यदि आप इसका उपयोग करते हैं, तो कृपया ध्यान रखें कि यह कोड राष्ट्रीय स्तर पर मनाई गई छुट्टियों (या उस मामले के लिए किसी भी अवकाश) को ध्यान में नहीं रखता है।