Grails - .withCriteria 只获取最近 5 分钟内创建的记录

Grails - .withCriteria to get only records created within the last 5 minutes

我试图只获取最近 5 分钟内创建的记录。我找到了使用 between("date", now-1, now) 的代码,但这在我的情况下不起作用,因为那里的 1 代表一天,这意味着我必须写 now-0.00347now-(5/1440)因为这就是 5 分钟。问题是 minus 方法显然不能应用于整数以外的任何数据类型。因此,如果有人知道获取最近 5 分钟内创建的记录的更好方法,请告诉我,我将不胜感激。这是我得到的:

def activeUsers = User.withCriteria{
    def now = new Date()
    between("date", now-(5/1440), now    
}

使用时间类别使 Groovy 中的日期操作更容易。比如这样:

import groovy.time.*
import org.codehaus.groovy.runtime.TimeCategory

def now = new Date()
def beforeNow = now
use (TimeCategory) {
  beforeNow = now - 5.minutes
}
def activeUsers = User.withCriteria{
    def now = new Date()
    between("date", beforeNow, now)
}