2016-04-01 4 views
0

Ich versuche nur die Datensätze zu erhalten, die in den letzten 5 Minuten erstellt wurden. Ich fand Code, der between("date", now-1, now) verwendet, aber das funktioniert nicht in meinem Fall, weil die 1 dort einen Tag darstellt und das würde bedeuten, dass ich schreiben müsste now-0.00347 oder now-(5/1440) coz das ist, was 5 Minuten sind. Das Problem dabei ist, dass die Minus-Methode offenbar nicht auf einen beliebigen Datentyp außer Ganzzahl angewendet werden kann. Wenn also irgendjemand einen besseren Weg kennt, um die in den letzten 5 Minuten erstellten Aufzeichnungen zu erhalten, lass es mich wissen, ich würde es sehr schätzen. Hier ist, was ich habe:Grails - .withCriteria, um nur Datensätze zu erhalten, die innerhalb der letzten 5 Minuten erstellt wurden

Antwort

2

Verwenden Sie Zeitkategorien, um die Datumsverarbeitung in Groovy zu erleichtern. Zum Beispiel:

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) 
} 
Verwandte Themen