【问题标题】:Convert Crystal Reports string to Date format yyyy-MM-dd将 Crystal Reports 字符串转换为日期格式 yyyy-MM-dd
【发布时间】:2015-02-22 10:04:18
【问题描述】:

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

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

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

【问题讨论】:

  • 公式有什么问题?
  • 返回错误“此处需要数字、货币金额、日期、时间或日期时间”。 @formula 字符串是 01.02.15
  • 什么是2000+?使用它的目的是什么?
  • 试图将 01.02.15 的年份部分更改为 2015 年。我该如何实现?

标签: crystal-reports


【解决方案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 测试)

【讨论】:

  • 好的,添加了对输入字符串部分的测试
  • 输入字符串是从主报表到子报表的参数。当放置在报告上时,它显示为:01.01.15 但仍然出现错误。
  • 对不起!应该第一次测试。现在这些示例适用于 CR 2008。
  • 完美!使用 CR 2011
猜你喜欢
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多