【问题标题】:Incorrect syntax near the keyword 'CONVERT' (In stored procedure EXEC) [duplicate]关键字“CONVERT”附近的语法不正确(在存储过程 EXEC 中)[重复]
【发布时间】:2020-08-11 14:47:43
【问题描述】:

我正在运行我的存储过程,它只接受一个DATE 类型的参数。参数的名称是 DateParam

EXEC [MyDBNAME].[dbo].[SPName] @DateParam = CONVERT(DATE, GETDATE());

但我收到以下错误:

关键字“CONVERT”附近的语法不正确。

我在此处以及其他论坛的许多其他问题中都看到了此错误。但是我没有找到一个可以回答这个问题的。感谢收看!

【问题讨论】:

  • 这里不能使用表达式。将值分配给参数。

标签: sql-server tsql


【解决方案1】:

SQL Server 不解析 exec 中的表达式。所以赋值给一个参数:

DECLARE @today DATE = CONVERT(DATE, GETDATE());

EXEC [MyDBNAME].[dbo].[SPName] @DateParam = @today;

我认为微软对这种限制有充分的理由——比如解析行中的歧义。这是一种痛苦。

【讨论】:

  • 太棒了!谢谢!但是我们应该在Declare 行中添加“AS DATE”。 DELCARE @today AS DATE.
  • @disasterkid 。 . .谢谢。
  • 将在 5 分钟内接受答案 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 2013-12-16
  • 1970-01-01
相关资源
最近更新 更多