0

我正在使用 JPA 1 和休眠作为提供者。我想将实体的日期与当前日期(无论时间如何)进行比较,并将该字段保存为时间戳(因为我需要它)。当我通过以下代码使用 oracle 方言时,我得到了正确的结果:

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

但是当我切换到 sql server(2008) 时,它不起作用。我需要一种通用的方式,以便我可以使查询数据库独立。

4

1 回答 1

0

这是您的 oracle 代码的精确模拟

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 回答