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

Convert Crystal Reports string to Date format yyyy-MM-dd

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

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

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

我会先将文本转换为日期,然后再转换回字符串。这样最容易理解不同类型转换的工作原理。

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 测试)