输入参数框日期格式

时间:2011-05-23 11:26:19

标签: crystal-reports crystal-reports-xi

我有数据sql语句,它使用some_date_to_compare > date('2011-05-05')语法比较日期。日期当前在SQL语句中是硬编码的,我想更改它,将日期作为参数传递,如下所示:some_date_to_compare > date({?date_from})date_from是日期类型,而不是日期/小时。

问题是,当我尝试运行报告时,Crystal会按照以下格式YYYY-MM-DD hh:mm:ss从输入参数框中传递日期,例如,如果我选择2011-05-05作为日历中的日期我将2011-05-05 00:00:00传递给date_from参数。

有没有办法解决方法,或以我期望的格式传递日期(YYYY-MM-DD)?

编辑(一些额外的信息):

我正在使用Informix并且该列是DATE类型(不是DATETIME - 日期+时间),因此它只是日期。 现在我的sql部分如下: date_to_compare between date({?date_from}) AND date({?date_to}), 所以我试图将表格中的列与日期范围进行比较。

然而问题是,当Crystal将输入参数框中的日期作为YYYY-MM-DD hh:mm:ss传递时,查询验证的结果是: String to date conversion error:-1218 ,这是因为通过日期的时间部分。

顺便说一句,是否有可能在SQL命令修改窗口中关闭Crystal的查询验证?

3 个答案:

答案 0 :(得分:1)

ToText()功能可用于执行此操作。

ToText({datefield}, "yyyy-MM-dd")

答案 1 :(得分:1)

似乎是与连接类型相关的案例。之前我使用过简单的JDBC连接。现在,当我使用ODBC连接(Informix驱动程序)时,日期格式的问题就消失了。

答案 2 :(得分:1)

创建空白报告并将原始报告作为子报告插入。现在,在Main报表中,创建一个'Date'类型的静态参数。创建一个名为“Date_conv”的新公式并输入:

Datetime({?Date_parameter})

然后将子报表放在主报表上。右键单击子报表,然后选择“更改子传输链接”。选择公式并将其移至“链接到”区域。接下来,从左下角的下拉列表中选择子报表的datetime参数。报表现在应该提示“日期”而不是日期时间。参考网站 - http://scn.sap.com/thread/2085118