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 :

Requête sur date courrante


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Requête sur date courrante
    Bonjour à tous,

    J'essaie actuellement de faire une requête qui me liste plusieurs informations selon la date courrante.
    Il se fait que j'ai une erreur me parlant de datetime. Peut-être un problème de conversion ? Parce que si je remplace le 'current_date' par '2010-07-07' il me sort bien ce que je veux.

    Si quelqu'un peut m'aiguiller à ce sujet
    Merci d'avance !

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT MagName,Serial,Pin,DateExpired,TrsDate,TrsTime
    FROM `hap_digico`.`tblpartdetailsarchive`,`hap_digico`.`tblmagasinaddress`
    WHERE tblpartdetailsarchive.IdMag = tblmagasinaddress.IdMag
    AND TrsDate = (ADDDATE('current_date' , INTERVAL -1 DAY))
    ORDER BY MagName;

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Il y a plusieurs choses qui ne vont pas dans ta requête :
    1) Tu devrais utiliser la syntaxe normalisée depuis 1992 pour les jointures ; j'ai cru qu'il y avait 4 tables dans le FROM et une seule condition de jointure dans le WHERE !

    2) CURRENT_DATE est un mot-clé SQL qui a pour fonction de renvoyer la date courante. Dans ta requête, tu as utilisé la chaîne de caractères 'current_date' qui a pour valeur : 'current_date' !

    3) Il est préférable de préfixer les noms des colonnes avec le nom ou l'alias de la table afin de faciliter la lecture de la requête.
    Là on ne sait pas d'où viennent les colonnes du SELECT.

    4) Les apostrophes inversées sont inutiles quand les noms d'objets ne sont pas des mots du langage SQL ou ne contiennent pas de caractères posant problèmes tels que espaces ou caractères diacritiques.

    Ta requête récrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT MagName, Serial, Pin, DateExpired, TrsDate, TrsTime
    FROM hap_digico.tblpartdetailsarchive
    INNER JOIN hap_digico.tblmagasinaddress ON tblpartdetailsarchive.IdMag = tblmagasinaddress.IdMag
    WHERE TrsDate = ADDDATE(CURRENT_DATE , INTERVAL -1 DAY)
    ORDER BY MagName;

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup pour ta réponse ! Ca marche parfaitement !

    Je prends note des différents points que tu m'as cité, ça me sera très utile pour la suite.
    Sinon concernant les apostrophes inversées inutiles, c'est dû au requetter que j'utilise (Mysql Query Browser) qui me demande à chaque fois de préciser la base pour chaque table que j'utilise. Bref, c'est surement parce que je n'utilise pas la bonne syntaxe pour la déclaration de mes tables.
    Quoi qu'il en soit, merci encore

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par siuol77 Voir le message
    Sinon concernant les apostrophes inversées inutiles, c'est dû au requetter que j'utilise (Mysql Query Browser) qui me demande à chaque fois de préciser la base pour chaque table que j'utilise.
    Les outils pour MySQL ont cette fâcheuse habitude d'ajouter des apostrophes inversées partout, même quand elle ne sont pas utiles.

    Le fait que tu doives déclarer quelle bases tu utilises est probablement parce que tu n'as pas choisi au préalable la BDD sur laquelle tu travailles. Ne connaissant pas MySQL Query Browser, je ne peux t'en dire plus.

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

Discussions similaires

  1. [REQ] Requête sur date et heure
    Par benazerty dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/06/2006, 13h34
  2. [sql server] requête sur dates et heures (format du résultat
    Par isachat666 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/02/2006, 13h48
  3. Requète sur dates compliquée ...
    Par itklif2 dans le forum Requêtes
    Réponses: 7
    Dernier message: 28/11/2005, 23h31
  4. [ADO] Requète sur dates
    Par cdlr27 dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/01/2005, 22h39
  5. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 16h11

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