【问题标题】:Passing dates to parameter in SSRS将日期传递给 SSRS 中的参数
【发布时间】:2017-03-16 09:46:55
【问题描述】:

我应该以哪种格式将日期字段传递给参数,以便能够选择列表中的日期选择器?

我的查询返回日期(日期格式),并在 SSRS 中以不同的方式(yyyy-dd-MM、yyyy-MM-dd、dd-MM-yyyy、...)进行转换:

=Format(Fields!StartDate2.Value,"yyyy-dd-MM")

我在参数中使用了这个字段,但总是报错:

报告处理过程中发生错误。 (rsProcessingAborted) 报告参数“STARTDATE”的属性“ValidValues”不 有预期的类型。 (rsParameterPropertyTypeMismatch)

当我只是传递查询结果(日期格式)时,我有列表:

即使选择了日期/时间:

【问题讨论】:

    标签: sql-server datetime reporting-services


    【解决方案1】:

    回答

    您遇到此问题的原因是您的环境中的语言/文化/日期格式不相似。

    SQL by DEFAULT 使用 en-US,而您的本地电脑使用本地语言/文化/日期格式。

    这是您的问题,而不是将您的日期值转换为您的本地值 语言/文化/日期格式,将其转换为 en-US "MM-dd-yyyy"

    答案解释

    为了说明这一点,您正在发送具有日期格式的 SQL 服务器 “MM/dd/yyyy”值“2017/16/03”。

    所以服务器认为“这家伙告诉我要搜索 2017 年第 16 天 03”

    【讨论】:

    • 大约 2-3 个月前也在与这个问题作斗争 :)
    • 打开您的 SSRS SQL 服务器,检查其语言....目标是让您的报告以与 SSRS sql 服务器的语言相同的格式向 SSRS 发送日期
    • 如果问题出现在 SSRS 本身内部,您需要检查包含所有数据的服务器的语言。它们可能不同步 :)
    • @Testtest11 在两个 SQL 服务器上?
    • @Testtest11 同样在您的报告创建者中,在 localisation(properties) 下将报告的语言设置为“=User!Language”并删除 =Format(Fields!StartDate2.Value,"yyyy-dd -MM")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多