2

我有数据 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 关闭查询验证?

4

3 回答 3

1

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

ToText({datefield}, "yyyy-MM-dd")
于 2011-05-23T14:54:35.130 回答
1

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

Datetime({?Date_parameter})

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

于 2012-06-18T10:12:04.250 回答
1

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

于 2011-05-24T10:31:54.750 回答