我在设置月份值时遇到 java 异常:
SELECT *
FROM {Order}
WHERE creationtime >= NOW()
AND creationtime <= DATE_SUB(NOW(), INTERVAL ?months MONTH)
但是这个查询在 mysql 中可以正常工作。
期望轨迹:
错误 [hybrisHTTP34] [FlexibleSearch] 发生灵活搜索错误... 2017 年 5 月 8 日 1:53:18 PM org.apache.catalina.core.StandardWrapperValve 调用 严重:路径 [/jafrastorefront] 上下文中 servlet [DispatcherServlet] 的 Servlet.service() 抛出异常 [请求处理失败;嵌套异常是 de.hybris.platform.servicelayer.search.exceptions.FlexibleSearchException:SQL 搜索错误 - 启用属性“flexible.search.exception.show.query.details”以获取更多详细信息]及其根本原因 org.hsqldb.HsqlException:意外标记:?
最佳答案
不确定java异常,但逻辑上,你的代码有这个问题。
如果NOW()
是 5th May
, DATE_SUB(NOW(),INTERVAL 1 MONTH)
将是5th April
,所以您正在选择记录 > 5th May
和< 5th April
同时。因此你不会得到任何结果。
在之间使用以避免混淆,请使用 BETWEEN
.
SELECT * FROM {Order}
WHERE creationtime BETWEEN
DATE_SUB(NOW(), INTERVAL 1 MONTH )
AND
NOW()
关于mysql - 我正在尝试获取最近 "N"个月的订单。在下面的查询中,我需要动态设置月份的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43841176/