将日期时间转换为文本输出的 SSRS 表达式

SSRS expression to Convert date time to output as text

我有一个返回#Error 的表达式,我认为这可能是由于数据类型不匹配造成的。

我有以下表达式,想看看是否可以在不影响其 dateadd 函数的情况下将其转换为文本。

我在列组中使用它。

   =SWITCH(    Fields!Type_of.Value = "4) Overdue Week 1 - '", 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 1), "dd-MM-yyyy") & "-" & 
FORMAT(DATEADD("d", Parameters!inpdate.Value,7), "dd-MM-yyyy"),
            Fields!Type_of.Value = "5) Overdue Week 2 - '", 
FORMAT(DATEADD("d", Parameters!inpdate.Value,8), "dd-MM-yyyy") & "-" & 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 14), "dd-MM-yyyy"),
            Fields!Type_of.Value = "6) Overdue Week 3 - '", 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 15), "dd-MM-yyyy") & "-" & 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 21), "dd-MM-yyyy"),
            Fields!Type_of.Value = "7) Overdue Week 4 - '", 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 22), "dd-MM-yyyy") & "-" & 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 28), "dd-MM-yyyy"), 
            Fields!Type_of.Value = "8) Overdue Week 5 - '", 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 29), "dd-MM-yyyy") & "-" & 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 35), "dd-MM-yyyy"), 
            Fields!Type_of.Value = "9) Overdue Week 6 - '", 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 36), "dd-MM-yyyy") & "-" & 
FORMAT(DATEADD("d", Parameters!inpdate.Value, 42), "dd-MM-yyyy"),  
            True, format(Fields!Type_of.Value, "dd-MM-yyyy")
)

这是返回的错误 - 转换为 Double 类型无效 任何提示和建议表示赞赏

我认为您只需要将使用 DATEADD() 计算的日期转换为字符串,以便可以将它们与“-”连接起来。

试试

Fields!Type_of.Value = "5) Overdue Week 2 - '", FORMAT(DATEADD("d", 8, Parameters!inpdate.Value), "dd-MM-yyyy") & "-" & FORMAT(DATEADD("d", 14, Parameters!inpdate.Value), "dd-MM-yyyy"),

并对 DATEADD 的所有实例重复...如果您需要不同的日期结构,只需编辑格式字符串即可。