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

ASP Discussion :

P'tit problème de requête SQL


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 68
    Par défaut P'tit problème de requête SQL
    Salut,

    J'ai un soucis de requête SQL
    Dans ma BD access, j'ai un champ nommé "dat" où les dates sont au format français.
    Mon serveur me donne des dates au format anglais.

    Ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    '*1
    session.LCID=&H040c
     
    '*2
    response.Write(date()-30&" | "& date())
     
    SQL="SELECT TOP 3 * FROM job_annonce WHERE dat >= #"&date()-30&"# AND dat <= #"&date()&"# order by dat desc;"
     
    Set RST = server.createobject("ADODB.Recordset")
    RST.Open SQL,Con , 3, 3
     
    '*3						
    response.Write(RST("dat"))
    *1
    Sert à transformer mes dates au format français

    *2
    date()-30 et date() me donne respectivement le 03/01/2007 et le 02/02/2007

    *3
    Quand je retire la portion de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE dat >= #"&date()-30&"# AND dat <= #"&date()&"#
    ça me donne le 25/01/2007

    il faut que je retire cette portion de code pour tester car là est le problème.

    Si je le laisse, il ne trouve aucun enregistrement.

    Pourtant le 25/01/2007 se trouve entre le 03/01/2007 (date()-30) et le 02/02/2007 (date())


    Quelqu'un à une idée ?

    Merci

  2. #2
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    si ton serveur est au format anglais il faut que tu lui donnes des dates au format anglais. Donc transforme les dates de ton paramètre au format MM/JJ/AAAA.

    Ensuite pour les comparaison de dates le mieux c'est d'utiliser DATEDIFF ou une fonction équivalente.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 68
    Par défaut
    si ton serveur est au format anglais il faut que tu lui donnes des dates au format anglais. Donc transforme les dates de ton paramètre au format MM/JJ/AAAA.
    Je transforme la date du servaur car je ne sais pas transformer les date dans la BD étant donné qu'elles n'en sont pas encore sortie
    solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if rst("dat") <=date() AND  rst("dat") >=date()-30 then
        'affiche cet enregistrement
    end if
    mais j'aimerais bien ne pas avoir à faire cette condition, j'aimerais que ce soit fait directement depuis la requête.

  4. #4
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    oui mais la fonction date() te renvois quoi ? la date en français ou en anglais ? pour que ta condition de requête fonctionne il faut bien évidemment que ca soit en anglais.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 68
    Par défaut
    le serveur initialement me donne une date format anglais

    MAIS je la transforme au format français grâce à ceci
    et les différents response.write que j'ai mis dans mon code me donnent des dates en français

    pour date()-30 -> 03/01/2007
    date() -> 02/02/2007

    et ce qui sort de ma BD est bien en format français également
    rst("dat") -> 25/01/2007

    donc les 3 dates avec lesquelles je dois travailler sont en français donc en principe je devrais pouvoir les comparer, ...

  6. #6
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    ok j'avais compris que ton serveur bdd avait des dates anglaises, autant pour moi.

    Et si tu mets des dates en dur dans ta condition de requêtes ca fonctionne ?

    Sinon ce truc :
    Ca ne fonctionnerait pas qu'à l'affichage ?

Discussions similaires

  1. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  2. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21
  3. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07
  4. [SQLserver2000][SQLServer CE] problème de requête SQL
    Par JBernn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/01/2005, 09h29
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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