嗨我很开心试图让存储过程在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