如何在 ssrs 中获取日期或 TAT 的差异
How to get the difference of dates or TAT in ssrs
我想获取日期的周转时间 (TAT)。例如:
我有一个 createddatetime 2016-11-02 06:21:34.000
和 endeddatetime 2016-11-02 22:00:00.000
。我想得到两个日期的差值,小数点后两位。任何人都可以帮助执行此操作所需的 SSRS 表达式吗?
上述差异的结果是 0.67
TIA!
将数字格式设置为带 2 位小数的数字,此表达式给出的结果与 SQL 语句相同:
=Round(DateDiff(DateInterval.Second,Fields!FirstDate.Value,Fields!SecondDate.Value) /60 / 60, 0) / 24
您需要计算秒数并将其舍入为小时值以模拟 SQL 的 DATEDIFF
函数的行为,因为 .NET 版本在比较日期时仅考虑完整单位.有关详细信息,请参阅此问题:SQL Server DateDiff Vs .Net DateDiff.
如果您刚刚使用过:
=DateDiff(DateInterval.Day,Fields!FirstDate.Value,Fields!SecondDate.Value)
然后你会得到 0.00
的结果,因为这些日期之间没有完整的天数,而不是你从 SQL 语句中得到的 0.65
。
同样,如果您尝试:
=DateDiff(DateInterval.Hour,Fields!FirstDate.Value,Fields!SecondDate.Value) / 24
你会得到 0.63
的结果,因为你的日期之间的完整小时数是 15
和 15 / 24 = 0.625
。
我想获取日期的周转时间 (TAT)。例如:
我有一个 createddatetime 2016-11-02 06:21:34.000
和 endeddatetime 2016-11-02 22:00:00.000
。我想得到两个日期的差值,小数点后两位。任何人都可以帮助执行此操作所需的 SSRS 表达式吗?
上述差异的结果是 0.67
TIA!
将数字格式设置为带 2 位小数的数字,此表达式给出的结果与 SQL 语句相同:
=Round(DateDiff(DateInterval.Second,Fields!FirstDate.Value,Fields!SecondDate.Value) /60 / 60, 0) / 24
您需要计算秒数并将其舍入为小时值以模拟 SQL 的 DATEDIFF
函数的行为,因为 .NET 版本在比较日期时仅考虑完整单位.有关详细信息,请参阅此问题:SQL Server DateDiff Vs .Net DateDiff.
如果您刚刚使用过:
=DateDiff(DateInterval.Day,Fields!FirstDate.Value,Fields!SecondDate.Value)
然后你会得到 0.00
的结果,因为这些日期之间没有完整的天数,而不是你从 SQL 语句中得到的 0.65
。
同样,如果您尝试:
=DateDiff(DateInterval.Hour,Fields!FirstDate.Value,Fields!SecondDate.Value) / 24
你会得到 0.63
的结果,因为你的日期之间的完整小时数是 15
和 15 / 24 = 0.625
。