【发布时间】:2013-11-20 06:26:29
【问题描述】:
我必须在JOOQ 中使用toChar() 函数吗?现在我使用了下面的代码
TO_CHAR(PaymentDate, 'YYYY-MM-DD') <= TO_CHAR(SYSDATE,'YYYY-MM-DD')");
我必须将其转换为 JOOQ。 JOOQ这个怎么用?
【问题讨论】:
我必须在JOOQ 中使用toChar() 函数吗?现在我使用了下面的代码
TO_CHAR(PaymentDate, 'YYYY-MM-DD') <= TO_CHAR(SYSDATE,'YYYY-MM-DD')");
我必须将其转换为 JOOQ。 JOOQ这个怎么用?
【问题讨论】:
jOOQ 3.2 未明确支持 Oracle 的 TO_CHAR() 函数。我为此添加了一个功能请求:#2832。
与此同时,您将不得不求助于纯 SQL as documented in the manual。例如,你可以写:
// Create reusable fields:
Field<String> f = DSL.field(
"TO_CHAR({0}, 'YYYY-MM-DD')", String.class, T.PaymentDate);
// Create reusable conditions:
Condition c = DSL.condition(
"TO_CHAR({0}, 'YYYY-MM-DD') <= TO_CHAR(SYSDATE, 'YYYY-MM-DD')",
T.PaymentDate);
请注意,{0} 是对 DSL.condition(String, QueryPart...) 的第一个 QueryPart 参数的引用。
【讨论】:
OracleDSL.toChar()……但你是对的——从与方言无关的角度来看,jOOQ 中仍然缺少该功能。我们将不得不进行调查并花一些时间来了解所有数据库供应商如何支持此功能
DSL.trunc(date, datePart) 目前不支持 H2 日期截断。我已注册 #3781 以提醒 jOOQ 3.6 效仿这一点