查询appengine数据存储区时使用日期时出现问题

时间:2010-04-15 06:59:44

标签: google-app-engine datetime google-cloud-datastore gql

我正在运行此查询:

SELECT FROM com.Data WHERE entryDate> DATE( '2010-3-16')

我收到此错误:

org.datanucleus.store.appengine.query.DatastoreQuery $ UnsupportedDatastoreFeatureException:查询DATE('2010-3-16')>问题:解析表达式时不支持的方法:InvokeExpression {[null] .DATE(Literal {2010 -3-16})}

当我在管理控制台上使用它时,同样的查询有效。但它不适用于本地或部署时的代码(java)。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用日期时间?日期,时间和日期时间都作为日期时间存储在内部; Java SDK可能不会为您实现此自动转换。

答案 1 :(得分:1)

我遇到了同样的问题

尝试:

Query query = pm.newQuery("select from com.Data where entryDate > myDate");
query.declareImports("import java.util.Date");
query.declareParameters("Date myDate");
query.execute(now);

答案 2 :(得分:1)

我建议您将所有日期存储为Long,并在执行查询之前在静态日期执行转换。