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

Requêtes MySQL Discussion :

comparaison date Mysql et date paramètre java


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut comparaison date Mysql et date paramètre java
    Bonjour,

    Je veux sélectionner les enregistrements dont la date est supérieure à la date issue d'un paramètre java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from table1
    where date > '"+ConvDate.convertDate(context.dateComparaison)+"';
    Résultat : toutes les lignes s'affichent alors que je ne devrais en avoir que quelques unes.

    ConvDate.convertDate(context.dateComparaison) me permet de mettre la date au format yyyy-MM-dd. C'est un String.

    Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from table1
    where date > '2008-09-10';
    Résultat : OK. Seules les lignes adéquates s'affichent.

    MERCI BEAUCOUP DE VOTRE AIDE.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonjour,

    ceci fonctionne t-il?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM table1
    WHERE date > '+ConvDate.convertDate(context.dateComparaison)+';

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut Même résultat - toutes les lignes
    Bonjour,

    Merci de votre réponse.

    Votre proposition donne le même résultat que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM table1
    WHERE date > '"+ConvDate.convertDate(context.dateComparaison)+"';

    c'est-à-dire toutes les lignes et non pas uniquement celles attendues.

    Bien cordialement.

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonjour,

    il faudrait voir la requête qui est réellement envoyée quand tu passe par le java (un echo de te requête)

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    attention aussi, date est un mot réservé. Par précaution, il serait mieux d'écrire `date` ou table1.date.

    au passage,

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut
    Merci pour vos réponses.

    OK pour date - mot réservé.
    En fait, j'ai simplifié la requête sur le post, il s'agit de last_acti. Pardon.

    Voici le code généré (j'utilise Talend)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    java.sql.ResultSet rs_tMysqlInput_2 = stmt_tMysqlInput_2
    					.executeQuery("select *  from tableA where last_acti > '\"+ConvDate.convertDate(context.dateComparaison)+\"'; ");
    Pardon pour la balise.
    MERCI A VOUS.

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    En fait, plutôt que le code Java généré par Talend, on voudrait voir le code SQL généré par Java...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select * from table1 where last_acti>'\"+ConvDate.convertDate(context.dateComparaison)+\"'; "
    Je ne suis pas sûre que vous attendiez cela mais je ne sais pas faire un echo de la requête.


    Par ailleurs, j'ai essayé de simplifier la requête en faisant la conversion de date dans le module java. J'utilise une variable supplémentaire maDate de type String à laquelle j'affecte le ConvDate.convertDate(context.dateComparaison).
    La requête java devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select * from table1 wherelast_acti >'"+context.maDate+"';
    Mais j'ai toujours le même résultat. Toutes les lignes s'affichent.

    Si j'inverse la sélection avec un <
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select * from table1 wherelast_acti <'"+context.maDate+"';
    Aucune ligne ne s'affiche.

    MERCI.

  9. #9
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Citation Envoyé par kaskai Voir le message

    Je ne suis pas sûre que vous attendiez cela mais je ne sais pas faire un echo de la requête.
    On s'attendait à un echo de la requête (perso, je ne suis pas javaphone). Si tu ne sais pas faire, tu peux te renseigner auprès du forum Talend.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut OK
    Bonjour,

    OK.
    En tout cas, merci de votre réactivité.
    Excellente journée.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Par défaut
    Bonjour,
    Après rapprochement de l'équipe Talend, je ne peux pas utiliser ce type de syntaxe dans le SQLBuilder (la syntaxe utilisant des + ou des row1.xxx n'est valable que dans les composants des Job Designs).

    MERCI A VOUS.
    Bien cordialement.

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

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 08h24
  2. Transformer une date Linux en date Mysql
    Par marsuwhite dans le forum Langage
    Réponses: 2
    Dernier message: 06/03/2009, 18h13
  3. [MySQL] comparaison de date mysql
    Par thepooh dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 28/02/2008, 15h14
  4. [Dates] Format de date MySQL vers français
    Par tcompagnon dans le forum Langage
    Réponses: 4
    Dernier message: 17/07/2007, 13h02
  5. conversion date timestamp vers date mysql
    Par seb0026 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/10/2005, 19h48

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