参数数据类型 nvarchar 对于 SSRS 中转换函数的参数 3 无效

Argument data type nvarchar is invalid for argument 3 of convert function in SSRS

我在 Report Builder 中执行查询时遇到参数和转换函数问题。 我的代码中包含以下内容:

CONVERT(VARCHAR(11), COALESCE(Status.POBDate, Status.[Sched Collection Date]),(@DateFormat)) AS [Collection Date] ,CONVERT(VARCHAR(11), Status.[Act Del Date],(@DateFormat)) AS [Delivery Date]

(@DateFormat) 参数的数据类型为整数,可用值如下图所示。

有趣的是,我可以 运行 在 SSMS 中进行查询而没有任何问题,但是当尝试在 Report Builder 中应用一些调整并保存报告时,它会抱怨参数无效,即使,无论如何都没有编辑参数(@DateFormat)。该报告在线运行完美,只有在 Report Builder 中打开它后,当我没有应用任何新调整时它才开始抱怨。

知道哪里出了问题以及我该如何解决吗? 我已经在 Whosebug 上检查了一些想法,但到目前为止还没有解决。

提前致谢!

您的参数类型是文本而非整数,这会导致错误。

您可以通过在 SQL 代码中将 DateFormat 参数转换为 INTEGER 来验证它

 CONVERT(VARCHAR(11), COALESCE(Status.POBDate, Status.[Sched Collection Date]),CAST(@DateFormat AS INTEGER)) AS [Collection Date]

建议使用该参数来格式化报告中的日期。

怎么做:

从您的 SQL 代码中移除转化

在您的参数中将其设置为文本并作为值设置日期格式字符串

美国 ="dd/MM/yyyy"

对于英国 ="MM/dd/yyyy"

对于您的日期字段,将格式表达式设置为 = Parameters!DateFormat.Value