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

ADO.NET Discussion :

Problème requête sql champ DATE [Débutant]


Sujet :

ADO.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut Problème requête sql champ DATE
    Bonjour,

    Voici la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     Dim str_requete As String = "SELECT a.NADM,a.NDL,c.CSVL,c.NSEJ,c.DPRV, pbname, pbdob, cana, rana, dres, cdca, cdrs, cdip " & _
                                        "FROM FLABO.SDLM c, FLABO.RAL a, MEDCPOF.SPTML0 d " & _
                                        "WHERE DPRV BETWEEN '01/06/12' AND '15/06/12' AND a.ndl=c.ndl AND cana " & _
                                        "IN ('CA', 'SP', 'ALB', 'CO2', 'PTHL', 'HB', 'TPRO', '1088G', 'HC', 'DEB24', 'CRE24', 'B2MIC') AND " & _
                                        "EXISTS (SELECT * FROM FLABO.RAL b WHERE c.ndl=b.ndl AND cana IN ('BMPRE', 'BAPRE', 'BTPRE', 'BSPRE')) " & _
                                        "AND a.nadm=d.nadm AND rana NOT IN ('99999999','NR')"
    Mon message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SQL0180: La syntaxe de la valeur de date, d'heure ou d'horodatage est incorrecte.
    Cause . . . . . :   La chaîne représentant une valeur de date, d'heure ou d'horodatage n'est pas conforme à la syntaxe applicable au format et au type de données implicites ou spécifiés. *N est soit la constante (chaîne de caractères) incorrecte, soit la variable hôte ou la colonne qui contient cette chaîne. Si le nom est *N, la valeur est une expression indiquée dans l'instruction. Si la chaîne a été trouvée dans une variable hôte, celle-ci porte le numéro 1. Que faire . . . :   Assurez-vous que la valeur de date, d'heure ou d'horodatage est conforme à la syntaxe applicable au type de données qu'elle représente. Renouvelez ensuite la demande.
    je me connecte a une base de donnée DB2.

    C'est le between BETWEEN '01/06/12' AND '15/06/12' qui pose problème pourtant dans la DB c'est bien un champ de type date sous forme dd/mm/YY

    Que faire ?

    D'avance merci

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Que faire ?
    Utiliser les requètes paramérées.
    Voir : http://johannblais.developpez.com/tu...acces-donnees/
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Merci de ton aide graffito mais ma requête fonctionne dans mon client AS400 je voudrais comprendre ici la différence ya des adaptations mais la je ne vois pas ?

    Y aurait pas des ♯ en plus a mettre ??

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    c'est bien un champ de type date sous forme dd/mm/YY
    En es-tu bien sûr ? Les formats standard sont:
    - USA : mm/dd/yyyy
    - ISO : yyyy-mm-dd
    - EUR : dd.mm.yyyy
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Oui je suis sûr du format: la requête me retourne un résultat quand je l'execute dans l'environnement AS400

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par jacko842 Voir le message
    Oui je suis sûr du format: la requête me retourne un résultat quand je l'execute dans l'environnement AS400
    je peux dire une betise ?
    Ne faut il pas une commande comme todate(01/01/12,dd/mm/yy) pour qu'il comprenne ?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    J'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Dim str_requete As String = "SELECT a.NADM,a.NDL,c.CSVL,c.NSEJ,c.DPRV, pbname, pbdob, cana, rana, dres, cdca, cdrs, cdip " & _
                                        "FROM FLABO.SDLM c, FLABO.RAL a, MEDCPOF.SPTML0 d " & _
                                        "WHERE DPRV BETWEEN " & "'" & Format(dte_date1, "dd/MM/yy") & "' AND " & "'" & Format(dte_date2, "dd/MM/yy") & "' AND a.ndl=c.ndl AND cana " & _
                                        "IN ('CA', 'SP', 'ALB', 'CO2', 'PTHL', 'HB', 'TPRO', '1088G', 'HC', 'DEB24', 'CRE24', 'B2MIC') AND " & _
                                        "EXISTS (SELECT * FROM FLABO.RAL b WHERE c.ndl=b.ndl AND cana IN ('BMPRE', 'BAPRE', 'BTPRE', 'BSPRE')) " & _
                                        "AND a.nadm=d.nadm AND rana NOT IN ('99999999','NR')"
    mais sans succès

    Message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SQL0180: La syntaxe de la valeur de date, d'heure ou d'horodatage est incorrecte.
    Cause . . . . . :   La chaîne représentant une valeur de date, d'heure ou d'horodatage n'est pas conforme à la syntaxe applicable au format et au type de données implicites ou spécifiés. *N est soit la constante (chaîne de caractères) incorrecte, soit la variable hôte ou la colonne qui contient cette chaîne. Si le nom est *N, la valeur est une expression indiquée dans l'instruction. Si la chaîne a été trouvée dans une variable hôte, celle-ci porte le numéro 1. Que faire . . . :   Assurez-vous que la valeur de date, d'heure ou d'horodatage est conforme à la syntaxe applicable au type de données qu'elle représente. Renouvelez ensuite la demande.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Si je fais juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Dim str_requete As String = "select dprv from flabo.sdlm where dprv='01/06/2012'"
    Il me sort un résultat sous forme 2012-01-06 ????????

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Okkkkkkkkk c'était le format

    2012-06-01

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

Discussions similaires

  1. problème requète avec les dates sous sql server
    Par fayabones dans le forum Développement
    Réponses: 2
    Dernier message: 04/06/2009, 23h27
  2. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 16h38
  3. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 18h50
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 19h09
  5. Réponses: 8
    Dernier message: 23/10/2003, 17h22

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