mysql - MySQL 5.1 存储过程中的错误

标签 mysql asp.net

我是存储过程新手

DELIMITER //
CREATE PROCEDURE sp_MyNewTable
(IN Mod nvarchar(50),IN Did int,IN startdate datetime,IN enddate datetime)
BEGIN
Declare DateDuration int,
SET actstatus=1,
SET DateDuration =  SELECT  DATEDIFF(startdate,enddate) as Datediff
insert into mytable (Duration,Module,Deptid,taskstartdate,activestatus) values       (DateDuration,Mod,did,enddate,startdate,actstatus)
 Select * from mytable 
 END //
 DELIMITER;

如果执行此操作,则会出现错误:

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 sp_MyNewTable (IN Mod nvarchar(50),IN Did int,IN startdate datetime,IN enddate datetime)

MYSQL版本是MYSQL 5.1

最佳答案

尝试:

DELIMITER //

CREATE PROCEDURE `sp_MyNewTable`(IN `Mod` VARCHAR(50),
                                 IN `Did` INT,
                                 IN `startdate` DATETIME,
                                 IN `enddate` DATETIME)
BEGIN
  DECLARE `DateDuration` INT;
  DECLARE `actstatus` DATETIME;
  SET `actstatus` := 1, `DateDuration` := DATEDIFF(`startdate`, `enddate`);
  INSERT INTO `mytable`
  (`Duration`, `Module`, `Deptid`, `taskenddate`, `taskstartdate`, `activestatus`)
  VALUES
  (`DateDuration`, `Mod`, `Did`, `enddate`, `startdate`, `actstatus`);
  SELECT * FROM `mytable`;
END//

DELIMITER ;

SQL Fiddle demo

关于mysql - MySQL 5.1 存储过程中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25848211/

相关文章:

asp.net - 下拉列表中的第一项为空白

mysql - 如何删除基于非主键列的重复行

mysql - 从表 A 中选择 *,但在第 1 列中显示它与表 B 中的匹配项

c# - 如何使用 C# 绑定(bind) .aspx 中定义的现有下拉列表

ASP.NET Cookie 更新值而不更新过期时间?

asp.net - 我可以同时使用多个 MembershipProvider 吗?

mysql - 使用由纬度和经度组成的 id

php - 为每个用户创建随机测试问题的最佳方法

MySQL - 按财政年度准确显示数据

c# - 是否可以将背景位置添加到 img/asp :image tag