0

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

我尝试了以下但它显示#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")
4

2 回答 2

0

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

=Format(CDate(Mid(Fields!DoB.Value,3,2) & "-" & Left(Fields!DoB.Value,2) & "-" & Right(Fields!DoB.Value,4)), "MM-dd-yyyy")
于 2016-05-19T11:36:04.770 回答
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% 确定此评论上方的表达式是否适用于您,因为我尚未对其进行测试,但至少我在另一个示例中向您展示了我的概念。

于 2016-05-25T03:57:08.633 回答