Datediff函数也会在输出中添加startdate日

时间:2013-07-02 05:41:03

标签: reporting-services reportbuilder

我在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天?

1 个答案:

答案 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)

您是否显示日期字段以确定您认为应该获得的是您实际得到的内容?例如,确保您没有返回缓存数据。