2011-05-25 12 views
16

Hola Estoy usando hibernate en mi ejemplo.Para Bean Prueba de auditoría de tabla Deseo buscar prueba de auditoría entre un rango de fechas con inclusión de límites inferiores superiores &. Mi código es como a continuaciónRestricciones entre para Fecha en Hibernate Criterios

Criteria criteria = session.createCriteria(AuditTrail.class); 

criteria.add(Restrictions.between("auditDate", sDate, eDate)); 

Fecha de partida es 25/11/2010. y la fecha de finalización es 25/05/2011. Pero solo está dando el resultado hasta 24/05/2011. No está realizando una búsqueda inclusiva. Cualquier otra forma de hacerlo. Estoy usando el servidor SQL.

Respuesta

32

Supongo que su fecha de auditoría es, de hecho, una marca de tiempo. Si es el caso, entonces esto es normal, porque 25/05/2011 significa 25/05/2011 a las 0 en punto (en la mañana). Entonces, por supuesto, cada fila que tenga una marca de tiempo de auditoría en la fecha 25/05/2011 es después de las 0 en punto de la mañana.

Agregaría 1 día a su fecha de finalización, y use auditDate >= sDate and auditDate < eDate.

criteria.add(Restrictions.ge("auditDate", sDate)); 
criteria.add(Restrictions.lt("auditDate", eDate)); 
1

criteria.add(Restrictions.between("DATE(auditDate)", sDate, eDate)); utilizar esto para ignorar la hora a partir de la fecha.

0
criteria.add(Restrictions.ge("fromDate", DateUtil.persianToGregorian(currentDate))); 
criteria.add(Restrictions.le("toDate", DateUtil.persianToGregorian(currentDate))); 

return criteria.list(); 
Cuestiones relacionadas