0

我正在尝试从 t.purchasedDate 的月份等于当前月份的 TransactionE t 实体中检索所有实体。

但是,当我的代码运行时,我遇到了语法错误。

String query = "SELECT t FROM TransactionE t WHERE Month(t.purchaseDate) = Month(" + getCurrentDate()+")";

Query q = em.createQuery(query);

请问有什么帮助吗?

getCurrentDate() 是一个以“yyyy-MM-dd”格式返回当前日期的函数。

以下是我希望实现的查询。 SELECT t FROM TransactionE t WHERE Month(t.purchaseDate) = Month("2013-10-06")

错误:原因:异常 [EclipseLink-8025] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.JPQLException 异常描述:解析查询的语法错误 [SELECT t FROM TransactionE t WHERE Month (t.purchaseDate) = Month(getCurrentDate()),第 1 行,第 40 列:意外令牌 [(]。

4

1 回答 1

0

Monthnot 是一个标准的 JPQL 函数。尝试:

SELECT t 
  FROM TransactionE t 
 WHERE FUNC('MONTH', t.purchaseDate) = FUNC('MONTH', CURRENT_DATE)
于 2013-10-09T14:48:50.323 回答