嗨我很開心試圖讓存儲過程在MySQL中正確解析。mysql存儲過程與日期的語法錯誤
我的問題是日期。我試圖讓商店程序創建一個開始日期,這是本月的開始,例如2009-07-01。然後使用這個日期,我使用DATA_ADD()函數添加一個月,使其讀取2009-08-01。
但是我的問題是,當我嘗試運行procdure來創建它,我得到以下錯誤:
Script line: 7 You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'DECLARE
cur_month INT;
SET cur_month = (SELECT MONTH(CURRENT_DATE()));
的存儲過程的代碼如下所示:
DROP PROCEDURE IF EXISTS sp_test;
DELIMITER //
CREATE PROCEDURE sp_test()
BEGIN
/*we work out the start and end dates*/
DECLARE cur_year INT;
SET cur_year = (SELECT YEAR(CURRENT_DATE()));
DECLARE cur_month INT;
SET cur_month = (SELECT MONTH(CURRENT_DATE()));
DECLARE temp_date VARCHAR(10);
SET temp_date = (SELECT CONCAT(cur_year,'-',cur_month,'-01'));
DECLARE start_date DATE;
SET start_date = (SELECT CAST(temp_date AS DATE)));
DECLARE end_date DATE;
SET end_date = (SELECT DATE_ADD(start_date, INTERVAL 1 MONTH));
INSERT INTO my_table (startdate, enddate)VALUES(start_date, end_date);
END; //
DELIMITER ;
我已經獨立運行查詢並且它們都返回正確的值並且工作,當我將它們添加到存儲過程中時,它只會開始失敗並出現語法錯誤。
我在這裏錯過了什麼導致我所有的頭痛?
謝謝...
這樣做第一!雖然我注意到我在演員陣容中留下了額外的)! – James 2009-07-03 14:28:54