java - SQL 查询查找与 Toplink 中的日期相等的行

标签 java sql oracle toplink

真的很讨厌Oracle中的日期,但我想做的只是一个基本查询来查找一行或多行是否等于日期(Oracle表中日期的格式是17-JAN-11) 。我正在使用 Toplink 来尝试形成查询。

我的代码是这样的:

ReadAllQuery query = new ReadAllQuery(FooMyTable.class);
ExpressionBuilder builder = query.getExpressionBuilder();

if (dateFoo != null)
    query.setSelectionCriteria(builder.getField("REQUEST_CREATED_DATE").equal(dateFoo));

...

它总是带回零行,我猜是因为我应该使用 truncateDate() 或其他东西,但我无法弄清楚语法。任何人都可以帮忙吗??通过 Google 找不到任何像样的东西,因此发布了此帖子。

更新:现在我知道这肯定与时间和日期有关 - 对于没有时间的行,它自己只是一个日期,上面的代码可以工作,但是如果日期值也有一个时间,那么它就会失败。

最佳答案

实际需要的代码是:

query.setSelectionCriteria(builder.getField("REQUEST_CREATED_DATE").truncateDate("DD").equal(dateFoo));

错误信息:

ORA-01898: too many precision specifiers Error Code: 1898 

是由于格式掩码不正确 - 因为我需要将日期四舍五入到最近的日期。

关于java - SQL 查询查找与 Toplink 中的日期相等的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751554/

相关文章:

oracle - 从数据库链接在 oracle 表上使用分区

java - 我的应用程序中的 Google Now 服务

java - 如何在检查是否存在 Java 8 Optional 时返回值?

java - Spring MVC StreamingResponseBody 返回分块文件

android - 以一定的时间间隔调用函数

sql - 内连接更新集postgresql

javascript - 使用 SQL 查询中的 PHP 变量回显 JS 函数

java - 在 Java 中复制 C 结构填充

sql - PL/SQL代码中的 bool 变量声明和用法有什么问题?

java - 无法将 CLOB 数据转换为字符串