在SSRS中将DDMMYYYY varchar值转换为MM-dd-yyyy

时间:2016-05-19 04:51:15

标签: reporting-services ssrs-2008-r2 ssrs-2012 ssrs-expression ssrs-2014

我想仅使用 SSRS表达式DDMMYYYY格式化数据(数据类型为 varchar )转换为MM-dd-yyyy格式。

我尝试了以下内容但显示 #Error

=IIF(NOT(IsNothing(Fields!DoB.Value)),CDate(Fields!DoB.Value).ToString("MM-dd-yyyy"),Nothing)

=IIF(NOT(IsNothing(Fields!DoB.Value)),Format(CDate(Fields!DoB.Value),"MM-dd-yyyy"),Nothing)

我尝试如下,然后显示MM-dd-yyyy

=Format(Fields!DoB.Value, "MM-dd-yyyy")

2 个答案:

答案 0 :(得分:0)

您是否尝试过解析字段值,就像这样?

=Format(CDate(Mid(Fields!DoB.Value,3,2) & "-" & Left(Fields!DoB.Value,2) & "-" & Right(Fields!DoB.Value,4)), "MM-dd-yyyy")

答案 1 :(得分:0)

我不明白为什么在报告中将其作为字符串传递。无论如何它在这里。

我用这个表达式测试了它:

= Mid("25052016",3,2)  + "-" + Left("25052016",2) + "-" + Right("25052016", 4)

这是我的输出:

05-25-2016
  • 基本上我在这里做的只是将你的字符串分成三个块,用 - 分隔 - 来实现你的目标。

因此,在您的示例表达式中,您可以尝试这样:

=IIF(NOT(IsNothing(Fields!DoB.Value)),(Mid(Fields!DoB.Value,3,2)  + "-" + Left(Fields!DoB.Value,2) + "-" + Right(Fields!DoB.Value, 4)),Nothing)

注意:我并非100%确定此评论上方的表达式会在您的最后发挥作用,因为我还没有测试过它,但至少我向您展示了我的概念在我的另一个例子中。