使用insert查询设置过程MySQL 5.5时出错

使用insert查询设置过程MySQL 5.5时出错,mysql,asp.net,Mysql,Asp.net,将错误设置为“error 1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获取正确的语法使用方法” 我在编码中没有发现任何错误的语法,但仍然无法找到问题 CREATE PROCEDURE sp_GetAssignTask(IN module varchar(100),IN did int,IN actstatus int,IN act varchar(30),IN sdate datetime,IN edate datetime,OUT outmsg

将错误设置为“error 1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获取正确的语法使用方法”

我在编码中没有发现任何错误的语法,但仍然无法找到问题

CREATE PROCEDURE sp_GetAssignTask(IN module varchar(100),IN did int,IN actstatus int,IN  act varchar(30),IN sdate datetime,IN edate datetime,OUT outmsg varchar(20))
BEGIN
DECLARE DateDuration int;
SET DateDuration = SELECT DATEDIFF(edate, sdate) ;
insert into sch_taskassigned   (Duration,Module,Content,Deptid,taskenddate,taskstartdate,activestatus,activity,subactivity)values (DateDuration,modul,conte,did,edate,sdate,actstatus,act,subact);
set outmsg = 'Added Successfully';
END 

我从中看到的唯一语法问题是

SET DateDuration=(选择DATEDIFF(edate,sdate))
此外,根据您正在执行此操作的客户端,您可能需要更改分隔符,例如:

DELIMITER $$

CREATE PROCEDURE sp_GetAssignTask(IN module varchar(100),IN did int,IN actstatus int,IN  act varchar(30),IN sdate datetime,IN edate datetime,OUT outmsg varchar(20))
BEGIN
DECLARE DateDuration int;
SET DateDuration = (SELECT DATEDIFF(edate, sdate));
insert into sch_taskassigned   (Duration,Module,Content,Deptid,taskenddate,taskstartdate,activestatus,activity,subactivity)values (DateDuration,modul,conte,did,edate,sdate,actstatus,act,subact);
set outmsg = 'Added Successfully';
END

$$