SSRS中2个日期的差异以int形式的日期

时间:2015-09-24 16:32:32

标签: reporting-services ssrs-2012

只是一个简单的问题。我必须计算SSRS报告中两个日期之间的差异。问题是日期只是整数(19740815,20150924)。我已经尝试转换为日期并将数据格式化为日期时间但没有运气。我无法更改数据库中的数据,因此我需要找出一种方法来进行计算而不改变它在报表上显示的方式。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

要将字段转换为日期,请使用:

CDATE(MID(Fields!YourDate.Value, 5, 2) & "/" & MID(Fields!YourDate.Value, 7, 2) & "/" & LEFT(Fields!YourDate.Value, 4))

如果您的日期设置使用 MM / DD / YYYY ,如果您使用 DD / MM / YYYY ,请切换 5 , MID中的 7

你的日期DIFF最终会像

一样
=DATEDIFF("D", 
 CDATE(MID(Fields!YourDate.Value, 5, 2) & "/" & MID(Fields!YourDate.Value, 7, 2) & "/" & LEFT(Fields!YourDate.Value, 4)),
 CDATE(MID(Fields!OtherDate.Value, 5, 2) & "/" & MID(Fields!OtherDate.Value, 7, 2) & "/" & LEFT(Fields!OtherDate.Value, 4)) )

我会创建一个计算字段来执行转换,这样您就可以使用新字段而无需将表达式转换为每个位置。

=DATEDIFF("D", Fields!NewDateField.Value, Fields!OtherNewDate.Value)

答案 1 :(得分:1)

您可以在ssrs中将这些值解析为日期,然后使用datediff函数,ex

=DateDiff("d",cdate(Mid("19740815",5,2) & "/" & Mid("19740815",7,2) & "/" & Mid("19740815",1,4)),cdate(Mid("20150924",5,2) & "/" & Mid("20150924",7,2) & "/" & Mid("20150924",1,4)))