Kie*_*v95 2 sql variables stored-procedures datediff
我试图在假期表中插入一个新的假期,但是我有一个工期列,我想在存储过程中进行计算。我已经使用日期差异来计算日期,但是我想将日期差异声明为变量,然后将变量打印到insert语句的值中。使用下面的语句,我不断收到此错误:在INSERT的SET子句或列列表中多次指定了列名“ StartDate”。一列不能在同一子句中分配多个值。修改该子句以确保一列仅更新一次。如果此语句更新视图或在视图中插入列,则列别名会隐藏代码中的重复项。
CREATE PROCEDURE spRequestHoliday @EmployeeID int,
@StartDate date,
@EndDate date,
@Duration int
/*
Name: spRequestHoliday
Description: Inserts a requested holiday into the holidays table
*/
Run Code Online (Sandbox Code Playgroud)
如
SELECT DATEDIFF(Day,@StartDate,@EndDate) AS DiffDate
BEGIN
INSERT INTO Holidays(EmployeeID, StartDate, EndDate, Duration,StartDate)
VALUES(@EmployeeID, @StartDate, @EndDate, 'DiffDate','PE')
END
Run Code Online (Sandbox Code Playgroud)
尝试这个
DECLARE @DateDiff AS Int
SELECT @DateDiff = DATEDIFF(Day,@StartDate,@EndDate)
INSERT INTO Holidays(EmployeeID, StartDate, EndDate, Duration, PE) --< columns name for PE
VALUES(@EmployeeID, @StartDate, @EndDate, @DateDiff,'PE')
Run Code Online (Sandbox Code Playgroud)
要么
INSERT INTO Holidays(EmployeeID, StartDate, EndDate, Duration, PE) --< columns name for PE
VALUES(@EmployeeID, @StartDate, @EndDate, DATEDIFF(Day,@StartDate,@EndDate),'PE')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7179 次 |
| 最近记录: |