在 Castor OQL 中筛选当前日期

发布于 2024-07-04 15:50:33 字数 190 浏览 8 评论 0 原文

我正在运行 java cocoon 2 和castor oql。 我试图按今天的日期过滤我的 oql 查询,但我似乎无法弄清楚(或在谷歌中找到)日期的语法。 数据库是 mySql,但 oql 由 java 类映射...因此对 field_date >= Now() 进行搜索不起作用。 有任何想法吗? 我真的无法忍受这个网站的限制,但这是我必须面对的。

I'm running the java cocoon 2 and castor oql. I'm trying to filter my oql query by today's date, but I can't seem to figure out (or find in google) the syntax of the date. The database is mySql, but the oql is mapped by the java classes... so doing a search on field_date >= Now() doesn't work. Any ideas? I really can't stand the limitations of this site, but it's what i have to work with.

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

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

发布评论

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

评论(2

苯莒 2024-07-11 15:50:33

我已经有一段时间没有使用 Cocoon 了,所以我不能说我真的能为你提供一个很好的答案。 但由于这个问题一直停滞不前,有几点建议;-)

  1. 只有在编写 SQL 字符串文字时,语法才重要。 我的印象是,使用 Castor,您可以绑定变量(并让 OQL 选择适当的格式)。 即“ where field_date >= ?”, myDateVal

  2. CastorTransformer 似乎只在 Cocoon 的一个特定版本中短暂出现,而且 AFAIK 并不是最新版本。 如果您可以控制正在运行的 Cocoon 版本,您可能需要考虑 CastorTransformer 的升级和替代品

It's been a while since I used Cocoon, so I can't say I really have a great answer for you. But since this question has been stagnating, a couple of points to suggest;-)

  1. Syntax should only matter if you are coding the literal SQL string. I was under the impression that with castor you can bind the variables (and let OQL select the appropriate format). i.e. " where field_date >= ?", myDateVal

  2. The CastorTransformer seemed to only make brief appearance in one specific version of Cocoon, and AFAIK its not in the latest. If you have control over the Cocoon version you are running, you might want to look at upgrading and alternatives to the CastorTransformer

南风起 2024-07-11 15:50:33

改编自 Castor JDO 常见问题解答,假设您正在比较日期而不是时间戳(请参阅 OQL 参考)。

OQLQuery query = db.getOQLQuery("SELECT p FROM Person p "
      +"WHERE lastvisitdate=$2");
query.bind( new Date() ); //new Date() defaults to today.

Adapted from the Castor JDO FAQ, assuming that you are comparing against a date and not a timestamp (see OQL reference).

OQLQuery query = db.getOQLQuery("SELECT p FROM Person p "
      +"WHERE lastvisitdate=$2");
query.bind( new Date() ); //new Date() defaults to today.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文