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

如何在Crystal报表中将DateTime对象转换为字符串,datetime,crystal-reports,Datetime,Crystal Reports,我有一行简单的Crystal Reports代码,如下所示: EffectiveDateTimeString = ToText({Command.EffectiveDate} , "dd-MM-yyyy hh:mm:ss" ); 但是,当我尝试验证公式时,会出现一个错误,即选择了“dd-MM-yyyy-hh:MM:ss”并显示“此函数的参数太多”。Command.EffectiveDate是DateTime对象。如何将其转换为字符串 谢谢 试试这个: EffectiveDateTimeStri

我有一行简单的Crystal Reports代码,如下所示:

EffectiveDateTimeString = ToText({Command.EffectiveDate} , "dd-MM-yyyy hh:mm:ss" );
但是,当我尝试验证公式时,会出现一个错误,即选择了“dd-MM-yyyy-hh:MM:ss”并显示“此函数的参数太多”。Command.EffectiveDate是DateTime对象。如何将其转换为字符串

谢谢

试试这个:

EffectiveDateTimeString := CStr(DateTime({Command.EffectiveDate} , "dd/MM/yyyy hh:mm:ss" ));
如果{Command.EffectiveDate}的格式不正确,这将确保它确实是DateTime

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

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

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

EffectiveDateTimeString := ToText({Command.EffectiveDate} , "dd-MM-yyyy hh:mm:ss" );
*编辑*

此代码段按预期工作:

ToText(CurrentDate + CurrentTime, "dd-MM-yyyy hh:mm:ss");

确保您的字段实际返回的是日期/时间,而不是一个或另一个。

是DateTime格式还是date格式的{Command.EffectiveDate}?它是C#DateTime对象。我测试了显示{Command.EffectiveDate}并看到了“dd-MM-yyyy-hh:MM”格式的内容。请看下面的答案,我认为它只是日期时间的格式。您需要使用“/”而不是“-”作为日期部分。我已经切换到使用“/”了,但我仍然收到两行相同的错误消息:好吧,我是个白痴。EffectiveDate实际上是一个字符串。对不起,伙计们。吸取教训!嗨,谢谢!我完全忘记了。但我试过了,仍然得到了这样的信息,“这个函数的参数太多了”