Grails вчерашний день в критериях

Я создаю критерии для получения всех созданных вчера записей для определенного класса домена. Что-то типа

def c = A.createCriteria().list {
  eq(<some operation on dateCreated>, <some operation on 'now'>)
}

заранее спасибо


person xain    schedule 22.12.2011    source источник


Ответы (2)


Как насчет

Date today = new Date().clearTime()
Date yesterday = today - 1

def c = A.createCriteria().list {
  ge(yesterday)
  lt(today)
}
person Fletch    schedule 22.12.2011
comment
следует читать: Date today = new Date() today.clearTime() хороший ответ, хотя@ - person ekawas; 08.12.2012
comment
@ekawas Это зависит от вашей версии groovy, в более новых версиях (думаю, начиная с 1.8 по памяти) clearTime () также возвращает дату. См. groovy.codehaus.org/groovy-jdk. /java/утилита/ - person Fletch; 11.12.2012

См. примеры критериев здесь: http://www.grails.org/doc/1.3.7/ref/Domain%20Classes/withCriteria.html

def now = new Date()
between('dateCreated', now-1, now)

вы получите все, что было создано в течение 24 часов после сейчас. Просто используйте стандартную манипуляцию датой Java, чтобы установить сейчас на полночь.

person Lauri Piispanen    schedule 22.12.2011