web-dev-qa-db-fra.com

Restrictions entre pour la date dans les critères Hibernate

Bonjour, j’utilise Hibernate dans mon exemple.Pour un essai d’audit sur table dans un haricot, je souhaite récupérer l’essai d’audit entre une plage de dates avec l’inclusion des limites supérieure et inférieure . Mon code est comme ci-dessous.

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

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

Ma date de départ est 25/11/2010. et la date de fin est 25/05/2011. Mais il ne donne que le résultat jusqu’à 24/05/2011.Il n’exécute pas de recherche inclusive.Toute autre façon de le faire .J’utilise SQL Server.

20
Sanjay Jain

Je suppose que votre date de vérification est en fait un horodatage. Si c'est le cas, c'est normal, car le 25/05/2011 signifie le 25/05/2011 à 0 heure (le matin). Donc, bien sûr, chaque ligne ayant un horodatage d'audit daté du 25/05/2011 est après 0 heure du matin. 

J'ajouterais 1 jour à votre date de fin et utiliserais auditDate >= sDate and auditDate < eDate

criteria.add(Restrictions.ge("auditDate", sDate)); 
criteria.add(Restrictions.lt("auditDate", eDate));
39
JB Nizet

criteria.add(Restrictions.between("DATE(auditDate)", sDate, eDate)); utilisez cette option pour ignorer l'heure à partir de la date.

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

 return criteria.list();
0
javacode1990