【问题标题】:DateDiff function in SSRS (report server) gives error?SSRS(报告服务器)中的 DateDiff 函数给出错误?
【发布时间】:2019-08-30 13:22:47
【问题描述】:

我正在尝试使用 DateDiff 函数查找两个日期之间的天数差距。 我定义了 2 个数据集。如果companycode 是“AB”,那么我从另一个数据集中的另一个数据集中检索数据。

这是我的表达。当我更改为预览模式时,它会在第一行 First(Fields!PeriodFrom.Value 显示红色标记。为什么? (生成报告后,该字段显示#Error

我在这里做错了什么?

 =IIF(Parameters!CompanyCode.Value="AB", 
    DateDiff("d",First(Fields!PeriodFrom.Value, "ABReportData"), First(Fields!PeriodTo.Value, "ABReportData")),
    DateDiff("d",First(Fields!PeriodFrom.Value, "XYReportData"), First(Fields!PeriodTo.Value, "XYReportData")))

【问题讨论】:

    标签: reporting-services ssrs-2012 ssrs-tablix


    【解决方案1】:

    我认为有两种可能的情况。第一个是表达式

    =First(Fields!PeriodFrom.Value, "ABReportData")
    

    不返回值。使用此表达式添加一列并检查是否获得值。

    如果值正确,请确保DateDiff() 函数获取日期:

    =IIF(Parameters!CompanyCode.Value="AB", 
         DateDiff("d",
                  CDate(First(Fields!PeriodFrom.Value, "ABReportData")), 
                  CDate(First(Fields!PeriodTo.Value, "ABReportData"))
                  ),
         DateDiff("d",
                  CDate(First(Fields!PeriodFrom.Value, "XYReportData")), 
                  CDate(First(Fields!PeriodTo.Value, "XYReportData"))
                  )
         )
    

    【讨论】:

    • 问题在于日期格式。我像 '01-08-2019' 一样通过了。但函数适用于“2019-08-01”格式
    • 是的,我是这么想的。而CDate() 在大多数情况下都能解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多