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

PHP & Base de données Discussion :

Requête avec des dates [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 261
    Par défaut Requête avec des dates
    Bonjour à tous,

    Je dois faire une requête sur des tables d'un système qui sont structuré de tel manière, je simplifie :

    Article :
    Id Article

    Tarifs :
    Article
    Tarif
    Date début
    Date fin

    Un article a donc plusieurs lignes tarifs.
    Mais un seul s'applique celui qui s'applique en fonction de la date du jour.

    Par exemple pour l'article B1 j'ai :
    B1;15,10;01/08/2010;31/08/2010
    B1;15,40;01/09/2010;01/01/1753

    Cela signifie que pour le mois d'aout le tarif du produit B1 est de 15.10€ et qu'a partir du 1er septembre (sans date de fin définie pour le moment) le tarif est de 15,40€

    Je souhaite donc faire une requête pour récupérer le tarif en vigueur mais je ne vois pas comment faire...

    Merci d'avance de votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tarif FROM tarifs WHERE Article = 12345
    AND CURDATE() BETWEEN date_debut AND date_fin
    Attention de ne pas avoir de chevauchements de plage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 261
    Par défaut
    Merci de ta réponse.

    Cela fonctionnera-il le 3 septembre par exemple ? (la date de fin sera 01/01/1753)

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca ne fonctionne pas avec des dates fantaisistes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 261
    Par défaut
    Et oui et c'est bien là mon problème...
    Car en fait cette date est généré automatiquement par un logiciel si je n'ai pas renseigné de date de fin et je n'ai pas moyen de modifier cette action.

    Moi je récupère ces infos de SQL Server et les injectes dans ma table MySQL.

    Peux être qu'après mon load data infile je pourrais lancer une requête pour faire un UPDATE de ce champ avec la date du jour ? C'est peut être le meilleur moyen ? Qu'en pensez-vous ?

    Merci de ton aide

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca serait plus propre de corriger la donnée ; en mettant NULL par exemple.
    Mais on peut aussi le traiter tel quel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tarif FROM tarifs WHERE Article = 12345
    AND CURDATE() BETWEEN date_debut AND date_fin
    OR CURDATE() > date_debut AND date_fin = '1753-1-1'
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Requête avec des dates
    Par Daviloppeur dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/05/2010, 12h28
  2. VB + Excel + SQL + Soucis requête avec des dates
    Par Invité dans le forum Excel
    Réponses: 2
    Dernier message: 12/03/2009, 08h15
  3. Requête avec des dates
    Par Danielle80 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/11/2007, 12h57
  4. requête avec des dates
    Par brigdid dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/06/2007, 09h22
  5. SQL Requête avec des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/03/2006, 18h20

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