我正在使用postrges db。 我的域名有一个日期字段:
java.util.Date requestedDate;
我想在我的控制器中按日期搜索:
eq ("requestedDate", requestedDate)
这很好用,但问题是日期和时间必须完全匹配。但是在应用程序中,用户只会输入搜索项目的日期(比如给我所有在2014-02-05上发出的请求,浏览器应用程序会将当前时间添加到请求中)。因此,比较失败,因为用户输入的时间与创建请求期间的时间不同。
我尝试了'like'
,但它会抛出错误。
如何仅比较日期部分?
答案 0 :(得分:11)
你可以这样做:
Date now = new Date()
now.clearTime()
def results = Meeting.withCriteria {
between('date', now, now+1)
}
因此,这会剥离当前日期的时间部分,然后执行“之间”查询(午夜刚刚过去和24小时后的午夜)。
答案 1 :(得分:0)
看起来似乎没有方便的方法来实现这一点。 你需要通过计算一天的开始和一天的结束来绕道而行,并使用之间的算子。
EDIT 我刚刚看到rcgeorge23为你提供了正确的例子。