IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Comparaison de date


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Comparaison de date
    Bonjour,

    J'ai un problème que je n'arrive pas a régler.
    Je veux afficher toutes les demandes de documents dans un certain laps de temps. Par exemple je veux afficher toutes les demandes de documents faites depuis 1 jour, 1 semaine, 1 mois, 1 année a partir de la date d'aujourd'hui.
    Je procède de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static   List searchReleaseRequests (Session session, int nbDays) {
        	  	
        	String query = "select d from Document d where ( current_time() - d.docDate ) < " + nbDays + " order by d.docId desc";
        	List result = session.createQuery(query).list();
        	return result;
        }
    Précisions :
    d.docDate a pour type DATETIME dans ma base de données.
    J'ai aussi essaye a la place de current_time() de mettre current_date()

    Le problème comme vous l'avez devinés est que cela ne fonctionne pas !
    Dans mon résultat j'ai tous les documents de ma base de données.
    Ce que j'ai compris c'est que ma soustraction est toujours négative.
    J'ai cherche a remplacer le current_time par une variable JAVA, en utilisant date, calendar, etc mais ça n'a pas marche après je ne suis pas super a l'aise donc j'ai pu me tromper !

    Si vous pouviez m'aider ce serait vraiment sympa. Merci !!!

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    voila comment je procède pour récupérer toutes les documents datant de moins de 14 jours dans mon application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int i = -14;
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(new Date());
    calendar.add(Calendar.DATE, i); // Retire 14 jours à la date courante, cf les autres champs de Calendar pour enlever autre chose
     
    // Puis la requête
    Session session = HibernateUtil.currentSession();
    Criteria criteria = session.createCriteria(Document.class).addOrder(Order.desc("docId"));
    criteria.add(Restrictions.ge("docDate", calendar.getTime())); // à adapter à ton mapping
    List<Document> list = criteria.list();
    si tu n'aimes pas l'API Criteria tu peux facilement retrouver le HQL correspondant, je suis juste trop paresseux pour traduire

    enfin, j'utilise des timestamp dans mon application, donc il est possible que tu aies à formater la date

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci Merci , ça a marché !!!!
    Sinon a titre informatif pour ne pas mourir bête, pourquoi ça ne marchait pas ce que j'avais fait
    Si j'avais su j'aurai demandé plus tôt mais c'est bien de chercher aussi pendant 3 jours ca forge le caractère . Merci encore !!!

  4. #4
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    je pense que c'était parce que tu comparais une différence de date avec un entier, je ne suis pas sur que cette différence renvoie un nombre de jour

    et si en plus ta base convertissait ton entier en date, ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparaison de dates javascript
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2005, 08h45
  2. comparaison de dates
    Par pmithrandir dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2005, 16h12
  3. comparaison de date
    Par nickoshiba dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2005, 15h48
  4. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo