SQL尝试在存储过程中使用DATEADD

时间:2017-09-06 14:32:09

标签: sql azure datetime stored-procedures

我在Azure上的示例数据库中创建了一个存储过程:

CREATE PROCEDURE SalesLT.InsertOrderHeader(@OrderDate AS DATETIME=NULL, @DueDate AS DATETIME=NULL, @CustomerID AS INT=NULL)
AS
DECLARE @SalesOrderID INT = NEXT VALUE FOR SalesLT.SalesOrderNumber
IF @OrderDate IS NULL
    BEGIN
        SET @OrderDate = GETDATE()
    END

INSERT INTO SalesLT.SalesOrderHeader(SalesOrderID,OrderDate,DueDate,CustomerID,ShipMethod)
VALUES (@SalesOrderID,@OrderDate,@DueDate,@CustomerID,'CARGO TRANSPORT 5')

PRINT @SalesOrderID

这很好,但是当我试着打电话时,我想从现在开始一周的约会:

EXEC SalesLT.InsertOrderHeader @DueDate= DATEADD(dd,7,getDate()) , @CustomerID=1

这没有用。这些错误说明了它所说的“dd'它是期待(或选择,并且在获得日期的结束时相同。它有什么问题?

1 个答案:

答案 0 :(得分:1)

EXEC

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="mydiv">
    <select>
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
</div>

<input value="">

请注意,它接受并接受变量。它不接受的是表达式

您需要将 [ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] } ] [ ,...n ] 逻辑移动到单独的行,并将结果值存储在变量中。

DATEADD