grails ORM,如何在没有时间的情况下搜索日期

时间:2014-02-05 13:32:04

标签: grails

我正在使用postrges db。 我的域名有一个日期字段:

java.util.Date requestedDate;

我想在我的控制器中按日期搜索:

eq ("requestedDate", requestedDate)

这很好用,但问题是日期和时间必须完全匹配。但是在应用程序中,用户只会输入搜索项目的日期(比如给我所有在2014-02-05上发出的请求,浏览器应用程序会将当前时间添加到请求中)。因此,比较失败,因为用户输入的时间与创建请求期间的时间不同。 我尝试了'like',但它会抛出错误。

如何仅比较日期部分?

2 个答案:

答案 0 :(得分:11)

你可以这样做:

Date now = new Date()
now.clearTime()

def results = Meeting.withCriteria {
    between('date', now, now+1)
}

因此,这会剥离当前日期的时间部分,然后执行“之间”查询(午夜刚刚过去和24小时后的午夜)。

答案 1 :(得分:0)

看起来似乎没有方便的方法来实现这一点。 你需要通过计算一天的开始和一天的结束来绕道而行,并使用之间的算子。

EDIT 我刚刚看到rcgeorge23为你提供了正确的例子。