1

私は次の方法を持っています:

public function listPublished(){
        var today = createODBCDate(now());
        return ormExecuteQuery("FROM Employment WHERE publishdate <= #today# and expirydate >= #today# ORDER BY tstamp desc");
}

実行すると、次のエラーが表示されます。

org.hibernate.QueryException: unexpected char: '{' [FROM EmploymentFindSonographer WHERE publishdate <= {d '2012-10-15'} and expirydate >= {d '2012-10-15'} ORDER BY tstamp desc]

私の推測では、HQL は ODBC 日付以外のフォーマットを必要とするのでしょうか? また、標準の CF 日付を渡そうとしましたが、同じエラーが発生しました。

HQL を ormExecuteQuery に渡すときに日付の形式を教えてもらえますか?

どうもありがとう

4

2 に答える 2

2

Simpeバージョン:

ormExecuteQuery("FROM Employment WHERE publishdate <= :today and expirydate >= :today ORDER BY tstamp desc", {today = Now()});

考えられる問題は、publishDateとexpiryDateがdate + timeを保持している場合、Now()が秒を出力することで予期しない結果が生じる可能性があることです。

したがって、おそらくより正確な方法は次のとおりです。

ormExecuteQuery("FROM Employment WHERE publishdate <= :today and expirydate >= :today ORDER BY tstamp desc", {today = DateFormat(Now(), 'yyyy-mm-dd')});
于 2012-10-15T11:54:57.257 に答える
1

試す

DateFormat(Now(), "yyyy-mm-dd")
于 2012-10-15T10:57:25.420 に答える