p
u
b
l
i
c
i
t
é
publicité

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

  1. #1
    Membre actif
    Inscrit en
    juin 2006
    Messages
    642
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 642
    Points : 191
    Points
    191

    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 Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 992
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 992
    Points : 7 767
    Points
    7 767

    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
    Inscrit en
    juin 2006
    Messages
    642
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 642
    Points : 191
    Points
    191

    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 Confirmé Sénior Avatar de Graffito
    Inscrit en
    janvier 2006
    Messages
    5 992
    Détails du profil
    Informations forums :
    Inscription : janvier 2006
    Messages : 5 992
    Points : 7 767
    Points
    7 767

    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
    Inscrit en
    juin 2006
    Messages
    642
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 642
    Points : 191
    Points
    191

    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 : 141
    Points
    141

    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
    Inscrit en
    juin 2006
    Messages
    642
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 642
    Points : 191
    Points
    191

    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
    Inscrit en
    juin 2006
    Messages
    642
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 642
    Points : 191
    Points
    191

    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
    Inscrit en
    juin 2006
    Messages
    642
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 642
    Points : 191
    Points
    191

    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, 22h27
  2. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 15h38
  3. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 17h50
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 18h09
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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