2016-04-01 3 views
0

Я пытаюсь получить только записи, созданные за последние 5 минут. Я нашел код, который использует between("date", now-1, now), но это не работает в моем случае, потому что 1 представляет собой день, и это означало бы, что мне пришлось бы писать now-0.00347 или now-(5/1440). Это то, что 5 минут. Проблема заключается в том, что метод минус, по-видимому, не может применяться к любому типу данных, кроме целого. Поэтому, если кто-нибудь знает лучший способ получить записи, созданные за последние 5 минут, пожалуйста, дайте мне знать, я был бы очень признателен. Вот что я получил:Grails - .withCriteria, чтобы получить только записи, созданные за последние 5 минут

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

ответ

2

Используйте временные категории, чтобы упростить обработку даты в 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) 
} 
Смежные вопросы