【问题标题】:SSRS Date Parameter MismatchingSSRS 日期参数不匹配
【发布时间】:2017-08-30 10:23:33
【问题描述】:

我有一个 SSRS 问题,当通过 URL 字符串将 DD/MM/YY 值发布到参数中时,它决定将 Day 值读取为 Year,将 Month 作为月份,但 Year 进入 Day 值,例如:

我通过 ERP 系统输入 2017 年 8 月 30 日的日期,然后生成一个字符串以用作生成报告的 URL,然后该日期值应进入名为 fiAsOfDate 的参数,即日期/时间数据类型,但此时它在参数列表中读取值为 08/17/1930,即使 URL 仍为 30/08/17。

这发生在处理查询之前,然后将 fiAsOfDate 参数格式化为 MMDDYYYY 以在查询中处理,但问题特别是当参数将值从 URL 加载到参数值时,我希望有人可以帮助我吗?

我还应该补充一点,这个原始日期来自一个 ERP 系统,该系统将具有基于区域的日期格式,因为它在国际上使用,所以我不能将自己限制为一种输入格式,它应该使用区域设置,匹配它所基于的报告服务器的服务器。

亲切的问候, 詹姆斯·W·阿克拉姆。

【问题讨论】:

  • 我认为您要么需要在您的 url 中设置发件人的区域,要么更改 ERP 以始终使用相同的格式,而不管其区域设置如何

标签: sql-server date reporting-services


【解决方案1】:

为避免区域设置问题,您可以将日期更改为已知整数或字符串格式:我使用 CONVERT(NVARCHAR, YourDate, 112) 获取字符串“20170830”。区域设置不会将其识别为日期,因此不会将其自动解析为 MM/DD/YYYY 或 DD/MM/YYYY。当然,您需要自己解析,以便在报告中使用它,但至少您知道格式。

【讨论】:

    【解决方案2】:

    这个问题归结于我自己的误解,即我从中提取数据的 DataSource 只能以 DMY 格式工作。将日期从参数格式转换为 DMY 格式并通过 DataSet 的查询进行处理解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多