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



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

我尝试了以下操作,但显示#错误

=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")

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

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

= 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%确定这条评论上方的表达式是否适用,因为我还没有测试过它,但至少我在另一个例子中向您展示了我的概念。

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

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

相关内容

  • 没有找到相关文章

最新更新