0

プロバイダーとして休止状態で JPA 1 を使用しています。エンティティの日付を(時間に関係なく)現在の日付と比較したいので、そのフィールドをタイムスタンプとして保存しています(必要に応じて)。次のコードでオラクルの方言を使用していたときに、正しい結果が得られました。

select t from Task t where to_date(t.createdOn) = to_date(CURRENT_DATE)

しかし、SQLサーバー(2008)に切り替えると、機能しません。クエリデータベースを独立させるには、一般的な方法が必要です。

4

1 に答える 1

0

これはあなたのオラクルコードの正確な類似物です

SELECT * FROM Task t
WHERE CAST(t.createdOn as date) = cast(getdate() as date)

しかし、私はこれを使用することをお勧めします:

SELECT * FROM Task t
WHERE t.createdOn >= cast(getdate() as date)
      AND t.createdOn < DATEADD(d, 1, cast(getdate() as date))

編集

Hibernate動作するように構成する方法の詳細については、これSQL SERVER 2008を参照してください

于 2013-01-15T08:38:03.040 に答える