如何在Crystal Reports中将DateTime对象转换为字符串

Spa*_*ero 6 datetime crystal-reports

我在下面有一行简单的Crystal Reports代码:

EffectiveDateTimeString = ToText({Command.EffectiveDate} , "dd-MM-yyyy hh:mm:ss" );
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试验证公式时,我得到一个错误,说"已经给了这个函数太多的参数",选择了"dd-MM-yyyy hh:mm:ss".Command.EffectiveDate是DateTime对象.如何将其转换为字符串?

谢谢!

cra*_*aig 6

您需要使用赋值运算符:=,而不是等价运算符=

EffectiveDateTimeString := ToText({Command.EffectiveDate} , "dd-MM-yyyy hh:mm:ss" );
Run Code Online (Sandbox Code Playgroud)

*编辑 *

此代码片段按预期工作:

ToText(CurrentDate + CurrentTime, "dd-MM-yyyy hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

确保您的字段实际上返回日期/时间,而不是其中之一。


cam*_*o_1 2

尝试这个:

EffectiveDateTimeString := CStr(DateTime({Command.EffectiveDate} , "dd/MM/yyyy hh:mm:ss" ));
Run Code Online (Sandbox Code Playgroud)

如果 {Command.EffectiveDate} 的格式不正确,这将确保它确实是 DateTime。

如果这不起作用,我只是在我的示例报告中创建了一个简单的公式,下面的代码在日期时间字段上运行得很好:

stringVar EffectiveDateTimeString;
EffectiveDateTimeString := CStr({Command.EffectiveDate}, "dd/MM/yyyy hh:mm:ss");
EffectiveDateTimeString
Run Code Online (Sandbox Code Playgroud)