关键字'CONVERT'附近的语法不正确在存储过程EXEC中

问题描述

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

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

但是出现以下错误

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

在这里以及其他论坛上的许多其他问题中,我都看到了此错误。但是我没有找到能解决问题的方法。感谢您的光临!

解决方法

SQL Server不会解析exec中的表达式。因此分配一个参数:

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

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

我想微软有此限制的充分理由-例如解析行中的歧义。这很痛苦。