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 :

Gestion dates négatives


Sujet :

ASP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut Gestion dates négatives
    Bonjour à tous !

    J'ai un petit problème avec une requête sur des dates. Je dois en effet faire une requête qui reçoit une date début et une date fin d'un formulaire, et qui affiche tous les enregistrements correspondants à ces dates. Le problème est que ces dates vont de -500 à + 800, et que cela fonctionne lorsqu'au moins la date de fin est positive mais pas si les deux dates sont avant zéro.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <%
    dim sID_Date, sDate_Debut, sDate_Fin
    dim sSQL, sSQL2, sPack
     
    sDate_Debut = request.Form("entre")
    sDate_Fin = request.Form("et")
     
    if sDate_Debut >= sDate_Fin then
    response.write("<div class=""sous-titren2"">Intervalle non valide</div>")
    elseif sDate_Debut = "" then
    response.write("<div class=""sous-titren2"">Veuillez choisir une date de début</div>")
    elseif sDate_Fin = "" then
    response.write("<div class=""sous-titren2"">Veuillez choisir une date de fin</div>")
    else
    response.write sDate_Debut
    response.write sDate_Fin
     
    sSQL2 = "select Pack.Pack, Pack.Pack_Impression from Pack where Pack.Date_debut <= " & sDate_Fin & " AND Pack.Date_Fin >= " & sDate_Debut & " order by Pack.Pack"
     
    Set rsDate = connect.execute (sSQL2)
     
    sID_Date = rsDate ("Pack")
     
    %>
    <div class="contientnotice">
    <%                                                                     
     
    do while not rsDate.eof
    sPack = rsDate ("Pack_Impression")
     
    %>
    <div class="notice"> <%=sPack%> </div>
    <%
    rsDate.Movenext
    loop
    end if %>
    Le problème vient apparemment du test d'intervalle qui plante lorsque je lui demande de comparer deux dates négatives où il me trouve que -400 est plus grand que -200. Sinon pour les autres cas de figure ça fonctionne très bien.

    Si quelqu'un a une idée, elle est la bienvenue

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    dates négatives ??
    as-tu essayé avec un between ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    C'est-à-dire ? Je ne comprends pas ce que tu veux dire avec ce between.

    en fait dans la base de données j'ai également une date de début et une date de fin et je teste si la date de début de l'enregistrement est avant la date de fin de la requête et si la date de fin de l'enregistrement est après la date de début de la requête. Si c'est le cas, je suis sûr qu'au moins une des deux dates se trouve entre les dates de début et de fin de la requête.

    Et ça plante en fait lorsque je teste les dates des requêtes pour voir si l'utilisateur n'a pas entré des dates inutilisables genre une date de fin qui est avant la date de début (si il me met que la date est entre 200 et 100 par exemple : inpossible). Si les deux dates sont négatives, on dirait qu'il ne tient pas compte des - car il me dit que -400 est plus grand que -500 par exemple.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    plutot le contraire que -500 est plsu grand que -400 sinon il n'y aurait pas de problème. Moi aussi j'ai un problème avec le -

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    de quel type est ton champ pour les dates dans ta base ?
    tu recherches a trouver des dates comprises entre une date de début et une date de fin ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    les champs sont de type numérique. je cherche à afficher les dates comprises entre la date de début et de fin ou à cheval sur cet intervalle

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    tu es sous quel SGBD ?
    est-ce que tes numériques sont signés ?

  8. #8
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Et si tu faisais une conversion de "request.Form("entre")" en date??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cdate(request.Form("entre"))
    cadte(request.Form("et"))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IF isdate(cdate(request.Form("entre"))) AND isdate(cdate(request.Form("et"))) THEN
        IF datediff(d,cdate(request.Form("entre")),cdate(request.Form("et"))) >0 THEN
             (...)
        END IF
    END IF
    Non?
    Et puis si tes champs sont numériques faire un cdbl(request.Form("entre"))
    A+
    http://www.w3schools.com/vbscript/func_datediff.asp
    http://www.w3schools.com/VBScript/func_cdate.asp
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    Parfait j'ai essayé avec cdlb j'ai du un peu chipoter (notamment au niveau du test pour voir si une valeur a été sélectionnée) mais ça marche. Merci beaucoup

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

Discussions similaires

  1. [XL-2003] Gestion date dans variable
    Par K-limero dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/03/2009, 13h47
  2. Réponses: 4
    Dernier message: 24/10/2008, 09h21
  3. [CS3] CS3 - Gestion Date à l'écran
    Par pgrcsn dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 09/09/2008, 12h29
  4. Gestion date et données vides
    Par coolpedro dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/08/2008, 13h13
  5. Gestion date format etranger
    Par hugo69 dans le forum Access
    Réponses: 6
    Dernier message: 19/12/2006, 19h52

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