Grails - .withCriteria 只获取最近 5 分钟内创建的记录
Grails - .withCriteria to get only records created within the last 5 minutes
我试图只获取最近 5 分钟内创建的记录。我找到了使用 between("date", now-1, now)
的代码,但这在我的情况下不起作用,因为那里的 1
代表一天,这意味着我必须写 now-0.00347
或 now-(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)
}
我试图只获取最近 5 分钟内创建的记录。我找到了使用 between("date", now-1, now)
的代码,但这在我的情况下不起作用,因为那里的 1
代表一天,这意味着我必须写 now-0.00347
或 now-(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)
}