我想仅使用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")