如何在 SSRS Report Builder 中将数字转换为日期

How to convert numbers to dates in SSRS Report Builder

我正在 SSRS Report Builder 中编写报告。我从数据集中提取的日期字段为我提供了一串数字(即:43706)。这个数字来自 Excel。 Excel 将日期存储为数字。它假定开始日期为 1/1/1900 并计算从那时起发生的每一天。所以 8/29/2019 是 1/1/1900 之后的 43,706 天。这将在 excel 中转换为 8/29/2019,但我不知道如何在 SSRS 中转换它。我试过 Cdate 和 FormatDateTime 但没有成功。还有其他解决方案吗?

根据附加信息,您应该可以使用DateAdd函数将数字转换为指定的日期。 DateAdd 需要 3 个参数 - 要添加的日期部分、该日期部分的编号以及要将日期部分的数量添加到的日期。例如,您的方案需要如下表达式。

=DateAdd(DateInterval.Day, 43706, CDate("1/1/1900"))

但是,假设日期来自某个字段,您只需将数字替换为字段名称,例如 Fields!DateConversion.Value.

此外,通过快速测试,可能会出现闰年或类似问题?如果您想完全匹配 Excel 所做的,您可能需要从字段中减去 2。

=DateAdd(DateInterval.Day, (Fields!DateConversion.Value - 2), CDate("1/1/1900"))