0

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

4

1 回答 1

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)

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

于 2013-07-02T08:04:21.083 回答