gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:48:35 25 4
gpt4 key购买 nike

我在 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

这不起作用。错误表明,它期望 ( 或 select ) 的地方显示“dd”,对于获取日期的右括号也是如此。有什么问题吗?

最佳答案

EXEC :

    [ [ @parameter = ] { value   
| @variable [ OUTPUT ]
| [ DEFAULT ]
}
]
[ ,...n ]

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

您需要将 DATEADD 逻辑移至单独的行,并将结果值存储在变量中。

DECLARE @dt datetime
SET @dt = DATEADD(day,7,getDate())
EXEC SalesLT.InsertOrderHeader @DueDate= @dt , @CustomerID=1

关于SQL 尝试在存储过程中使用 DATEADD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com