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

发布于 2024-08-28 13:52:04 字数 360 浏览 5 评论 0原文

我正在运行此查询:

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),无论是本地还是部署时。有什么想法吗?

I'm running this query:

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

I get this error:

org.datanucleus.store.appengine.query.DatastoreQuery$UnsupportedDatastoreFeatureException: Problem with query DATE('2010-3-16')>: Unsupported method while parsing expression: InvokeExpression{[null].DATE(Literal{2010-3-16})}

The same query works when I use it on the admin console. But it does not work for code (java), either locally or when deployed. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

手心的温暖 2024-09-04 13:52:04

您是否尝试过使用日期时间?日期、时间和日期时间都在内部存储为日期时间; Java SDK 可能没有为您实现这种自动转换。

Have you tried using a datetime? Dates, times, and datetimes are all stored internally as datetimes; it's possible the Java SDK doesn't implement this automatic casting for you.

花伊自在美 2024-09-04 13:52:04

我有同样的问题

尝试:

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

I had the same problem

try :

Query query = pm.newQuery("select from com.Data where entryDate > myDate");
query.declareImports("import java.util.Date");
query.declareParameters("Date myDate");
query.execute(now);
女皇必胜 2024-09-04 13:52:04

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

I suggest storing all your dates as Long and performing the conversion on the static date prior to executing the query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文