我在Report Builder 1.0中有一个报告,其中我编写了一个公式,用于计算startdate和enddate之间的天数。为此,我以这样的方式使用了DATEDIFF
函数:
DATEDIFF(DAY, TODAY(), column from table which has end date)
假设今天的日期是1 July 2013
&该列将结束日期发送为10 July 2013
,然后DATEDIFF
函数返回“10天”,而它应将输出返回为值“9天”。为什么它会返回10天而不是9天?
答案 0 :(得分:0)
在Sql Server中执行此操作,您将获得9天:
select DATEDIFF(day, '2013-07-01', '2013-07-10')
将其用作数据集:
select CAST('2013-07-01' AS DateTime) AS StartDate, CAST('2013-07-10 23:59:59' AS DateTime) AS EndDate
然后在SSRS中使用此表达式:
=DateDiff(DateInterval.Day, Fields!StartDate.Value, Fields!EndDate.Value)
即使使用时间成分,仍会产生9天。请尝试以下表达式:
=DateDiff(DateInterval.Day, DateTime.Today, Fields!EndDate.Value)
您是否显示日期字段以确定您认为应该获得的是您实际得到的内容?例如,确保您没有返回缓存数据。