首页 > 解决方案 > Datediff,如果某些值为“无”,它会起作用吗

问题描述

我有 2 个字段,签入和签出,它们的表达式都是

=IIF(IsNothing(Fields!CheckIn.Value), "[None]", Fields!CheckIn.Value)
=IIF(IsNothing(Fields!CheckOut.Value), "[None]", Fields!CheckOut.Value)

我想以分钟为单位计算它们之间的持续时间,但是如果某些值没有,它会影响它们吗?

标签: reporting-services

解决方案


此处理想的解决方案是使用原始值,而不是此处文本框的值。如果您的值来自带有NULL值的数据集,则可以找到差异,而不必担心格式化报告中每个值的表达式。以下表达式应计算差异。

= IIF(IsNothing(Fields!CheckIn.Value) OR IsNothing(Fields!CheckOut.Value), "[None]", 
     DateDiff("n", Fields!CheckIn.Value, Fields!CheckOut.Value))

如果两个值都是非空值,则此表达式将导致[None]ifCheckInCheckOutareNULL并返回一个表示差异的数值(以分钟为单位)。


推荐阅读