如何在Hybris Flexible Search Query中使用Date?

时间:2017-04-18 10:58:08

标签: java hybris

我正在尝试使用基于日期的灵活搜索查询从hybris获取记录。我试图找到相同的资源,但没有成功。

基本上,我正在尝试查找修改日期等于当前日期的产品。

我目前的查询是:

Select * from {product as p} where to_char({p.modifiedDate},'dd/mm/yyyy')==to_char('18/04/2017','dd/mm/yyyy')

这是我当前的查询。 但是,当我使用HAC运行它时,它会给我错误:

xception message: ORA-00936: missing expression
Exception stacktrace:
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017) oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655) oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566) oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215) oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58) oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776) oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897) 

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

正如alain.janinm所说

  1. modifiedtime而不是modifiedDate

  2. =而不是==

  3. 我猜你不需要第二个to_char,因为它已经是char。

  4. 以下是Oracle和MySQL示例的官方文档:

答案 1 :(得分:2)

有两个问题:

您使用openssl pkcs12 -export -in cert.pem -inkey key.pem -out private.pfx来测试相等性,使用一个就足够了。

您使用==但该字段名为p.modifiedDate

最后一次to_char调用没用。

不幸的是,我可以使用Orale Db进行测试,但灵活搜索应该如下:

modifiedtime

答案 2 :(得分:1)

请尝试此解决方案:

{p.modifiedTime} BETWEEN TO_DATE('18/04/2017 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
        AND TO_DATE('18/04/2017 23:59:59', 'YYYY-MM-DD HH24:MI:SS')