将Crystal Reports字符串转换为日期格式yyyy-MM-dd

时间:2015-02-22 10:04:19

标签: crystal-reports

我有一个Crystal Reports公式字段,它返回格式为dd.MM.yy的字符串。如何创建CR公式以将其转换为格式为yyyy-MM-dd的日期?

所有日期均为2000年及以后的日期。到目前为止我试过这个:

Date(2000 + right({@formula}, 2), mid({@formula}, 4, 2), left({@formula}, 2))

1 个答案:

答案 0 :(得分:1)

我首先将文本转换为日期然后再转换为字符串。这样,最容易理解不同演员的工作方式。

ToText(DateValue(
    2000 + ToNumber(Split({@formula}, '.')[3]) , ToNumber(Split({@formula}, '.')[2]), ToNumber(Split({@formula}, '.')[1])
), "yyyy-MM-dd")

如果您在转换时遇到错误,可能需要确保输入字符串格式正确:

If NumericText(Split({@formula}, '.')[1]) and NumericText(Split({@formula}, '.')[2]) and NumericText(Split({@formula}, '.')[3])  Then
    ToText(DateValue(
        2000 + ToNumber(Split({@formula}, '.')[3]) , ToNumber(Split({@formula}, '.')[2]), ToNumber(Split({@formula}, '.')[1])
    ), "yyyy-MM-dd")
Else "Incorrect string"

(经CR 2008测试)