【问题标题】:Argument data type nvarchar is invalid for argument 3 of convert function in SSRS参数数据类型 nvarchar 对 SSRS 中转换函数的参数 3 无效
【发布时间】:2021-08-31 01:18:15
【问题描述】:

在报表生成器中执行查询时,我遇到了参数和转换函数的问题。 我的代码中有以下内容:

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) 参数的数据类型为 Integer 和可用值,如下图所示。

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

知道什么是错误的以及如何解决它吗? 我在 stackoverflow 上检查了一些想法,但到目前为止没有任何结果。

提前致谢!

【问题讨论】:

    标签: reporting-services parameters ssrs-2008 reportbuilder


    【解决方案1】:

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

    您可以通过在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 2022-11-09
      • 2014-09-28
      • 2017-03-22
      • 2015-08-21
      相关资源
      最近更新 更多