【问题标题】:Using DateDiff to Calculate the Difference in Days使用 DateDiff 计算天数差异
【发布时间】:2014-07-10 19:55:07
【问题描述】:

在下面的表达式中,我试图计算创建日期和今天日期之间的天数差异。如果小于30天则输出“1”,否则输出“0”

=IIF(DateDiff("d",(Format(CDate(Fields!Created.Value), "MM/dd/yyyy")), (Format(CDate(Today()), "MM/dd/yyyy")))<30, "1", "0")

“Created”和 Today() 中的两个值都使用日期和时间进行格式化,因此我使用 Format 和 CDate 仅提取日期。当我运行报告时,它显示所有“0”,我知道这是不正确的。表达方式有问题吗?

【问题讨论】:

  • 表达式看起来不错。将 30 更改为 3000 看看是否仍然得到 0 还是现在显示 1?

标签: reporting-services reportbuilder3.0


【解决方案1】:

是的,该表达式有很多问题:您获取日期,将它们显式转换为日期,然后使用格式将它们转换为字符串,然后将它们隐式转换回日期以进行日期比较。这是很多繁重的工作,没有任何好处。您还在 VBA 表达式中使用 SQL 语法。当它可能应该是一个整数时,您的结果也是一个字符串。

你的表达应该更像这样:

=IIF(DateDiff(DateInterval.Day, Fields!Created.Value, Today) < 30, 1, 0)

【讨论】:

    猜你喜欢
    • 2015-12-30
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2020-12-29
    • 2020-02-19
    • 1970-01-01
    相关资源
    最近更新 更多