gpt4 book ai didi

sql-server-2008 - 为什么在存储过程调用的参数之一上使用 CONVERT 会出错?

转载 作者:行者123 更新时间:2023-12-04 07:22:25 25 4
gpt4 key购买 nike

出于某种原因,以下给了我一个错误:

DECLARE @Param1 DATETIME2(3)=...; -- Assign some date/time
DECLARE @Param2 DATETIME;
DECLARE @Param3 DATETIME;

EXEC dbo.SomeStoredProc CONVERT(DATE, @Param1), @Param2 output, @Param3 output;

输出是编译失败:

Msg 156, Level 15, State 1, Line 5 Incorrect syntax near the keyword 'CONVERT'.



将其更改为以下可解决问题:
DECLARE @Param1 DATETIME2(3)=...; -- Assign some date/time
DECLARE @Param2 DATETIME;
DECLARE @Param3 DATETIME;
DECLARE @TempDate DATE=CONVERT(DATE,@Param1);

EXEC dbo.SomeStoredProc @TempDate, @Param2 output, @Param3 output;

最佳答案

存储过程参数不能包含表达式,它们必须是常量值或 @变量。在您的示例中,CONVERT()是一个表达式,因此是不允许的。

默认参数值也是如此。

关于sql-server-2008 - 为什么在存储过程调用的参数之一上使用 CONVERT 会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230960/

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