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

Convert DDMMYYYY varchar value to MM-dd-yyyy in SSRS

我想使用SSRS表达式[=24]将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")

您试过像这样解析字段值吗?

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

我不明白你为什么在报告中将它作为字符串传递。不管怎样,它就在这里。

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

= 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% 确定这条评论上面的表达式对你有用,因为我没有测试过但至少我向你展示了我的我的另一个例子的概念。