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

Langage SQL Discussion :

Calcul de date


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Par défaut Calcul de date
    Bonjour à tous j'ai un problème dans une requete pour trouver des infos durant une certaine période. Voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    From Abord
    WHERE Abord = 1
    And Date > 0000-00-00
    And Date < 9999-99-99;
    Mais ceci ne fonctionne pas si je met seulement "Date > 0000-00-00" en condition cela marche mais pas si je met seulement "Date < 9999-99-99" ou si je met les deux.
    J'ai testé aussi d'uiliser des dates autres que "0000-00-00" et "9999-99-99" mais cela ne fonctionne pas non plus.
    Merci

  2. #2
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    La date 00-00-0000, je peux le concevoir (et encore) : on peut imaginer que c'est la naissance du petit Jésus...

    Par contre, 9999 comme année, je veux bien, pourquoi pas, même si 8000 ans, ça commence à faire comme durée de vie d'un logiciel...

    mais là où ça se gâte, c'est pour le mois 99 !
    c'est quoi son petit nom ?

  3. #3
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Par défaut
    Mais c'est un test c'est fictif. Là n'est pas le problème si je met
    "2005-12-31" à la place de "9999-99-99" le résultat est le même la requête ne marche pas.

    J'ai testé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    From abord
    WHERE Abord = 1
    And Date < 2005-12-31
    et cela ne marche pas alors que toute mes dates sont avant le 2005-12-31
    alors que ceci marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    From abord
    WHERE Abord = 1
    And Date > 2000-01-01

  4. #4
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Déjà, quand vous dites que ça "ne marche pas" cela signifie que le filtrage n'est pas efficace ou que cela produit une erreur ?

    Sinon, quel est votre SGBD ?
    Parce que sous Oracle, on fait to_date ('2005-12-31', 'YYYY-MM-DD') pour convertir une chaine en date...

    D'autre part, au lieu de mettre 2005-12-31, si vous mettez 2006-01-01 en borne sup ?

  5. #5
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Peut être que ca marcherait mieux comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT * 
    From Abord 
    WHERE Abord = 1 
    And Date > "0000-00-00" 
    And Date < "9999-99-99";
    Mais en remplacant, 9999-99-99 par une "vraie" date, comme l'as souligné Leo.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  6. #6
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Par défaut
    Merci lalystar ça marche et oui j'utilise autre chose que "9999-99-99" et que "0000-00-00" mais là c'était des exemples ! c'est tout.
    Et merci quand même pour ton aide LeaAnderson.

  7. #7
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Parfait ! :-)
    Dans ce cas, n'oubliez pas de marquer le sujet comme étant résolu ! ;-)

    Sinon, à l'avenir, si vous pouviez penser à fournir les paramètres réellement utilisés, ça permettrait de ne pas partir dans une fausse piste pour rien...

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

Discussions similaires

  1. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  2. COUNT + Calcul de DATE
    Par cassi2 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/10/2004, 16h35
  3. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  4. SCRIPT CALCULANT LA DATE
    Par Redouane dans le forum ASP
    Réponses: 3
    Dernier message: 17/03/2004, 09h10
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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