gpt4 book ai didi

SQL Server - 将默认日期时间值分配给存储过程中的参数

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

也许我在这里是个白痴,但我试图将默认的日期时间值分配给 MS SQL Server 2005 中的存储过程,但无法让它工作,例如:

CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,
@MyDateTime DATETIME = CONVERT(DATETIME, '1753-01-01 00:00:00', 20)
)
AS
BEGIN ... (snip)

因此,如果未指定 @MyDateTime 输入参数,则默认情况下应使用“1753-01-01 00:00:00”,但我收到错误...

Incorrect syntax near the keyword 'CONVERT'.

我可以让它很好地适用于整数。我做错了什么?

<小时/>

编辑:根据下面的答案,我最终在存储过程本身中使用了以下内容:

CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,
@MyDateTime DATETIME = NULL
)
AS
BEGIN
SET NOCOUNT ON

SET @MyDateTime = COALESCE(@MyDateTime, CONVERT(DATETIME, '1753-01-01 00:00:00', 20))

...snip...
END

最佳答案

@MyDateTime DATETIME ='1753-01-01 00:00:00'

或者在存储过程中您可以执行以下操作:

SELECT @MyDateTime = (SELECT CONVERT(DATETIME, '1753-01-01 00:00:00', 20))

该错误是由于调用 CONVERT 造成的,默认参数时无法执行此操作。

关于SQL Server - 将默认日期时间值分配给存储过程中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6413277/

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