我正在尝试使用基于日期的灵活搜索查询从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)
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
正如alain.janinm所说
modifiedtime而不是modifiedDate
=而不是==
我猜你不需要第二个to_char,因为它已经是char。
以下是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')