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

  1. #1
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    novembre 2005
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2005
    Messages : 187
    Points : 51
    Points
    51

    Par défaut Requêtes temporelles MySQL

    Salutations,

    La requête suivante vous semble t'elle correcte ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (...)
    // Requetes SQL
    $select = $connexion->query ("SELECT * FROM $table WHERE TO_DAYS(NOW()) - TO_DAYS( `Date` ) > 30 AND TO_DAYS(NOW()) - TO_DAYS( `Date` ) < 60 AND `Actif` <> 'Non' ORDER BY Date ASC");
    (...)
    "WHERE TO_DAYS(NOW()) - TO_DAYS( `Date` ) > 30" fonctionne parfaitement, mais la il me faut juste un créneau entre 30 et 60 jours.

    Je ne peux pas tester, car cela sert à envoyer des mails de relance.
    Digital self-made Man - OnLine since 1993.
    http://wda-fr.org - http://mathieu.charreyre.net

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    7 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 7 789
    Points : 24 304
    Points
    24 304

    Par défaut

    Oui, ta requête semble en effet valide.
    Citation Envoyé par Casio Voir le message
    Je ne peux pas tester, car cela sert à envoyer des mails de relance
    Tu n'as aucun autre accès à la base de données que de faire tourner ton application ? Tu développes directement sur la production ? Pas d'environnement de développement ou de recette ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    novembre 2005
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2005
    Messages : 187
    Points : 51
    Points
    51

    Par défaut

    Merci de ce retour.

    Non, en effet, je développe directement online.
    Je gère bénévolement une association depuis plus de 20 ans, et le DEV n'est pas mon métier, mais personne n'a voulu s'en occuper, il fallait bien que quelqu'un s'y colle donc.

    Cela gère le listing d'enlèvement de cette page publique.

    Donc, si cela fonctionne bien, je n'aurais pas peur en cliquant dessus dans 15 jours pour les relances.
    Digital self-made Man - OnLine since 1993.
    http://wda-fr.org - http://mathieu.charreyre.net

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    février 2011
    Messages
    3 546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : février 2011
    Messages : 3 546
    Points : 11 071
    Points
    11 071

    Par défaut

    Salut à tous.

    Citation Envoyé par Al1_24
    Oui, ta requête semble en effet valide.
    Valide, peut-être, mais non conforme. Il existe une fonction MySql qui permet de calculer la différence en jour entre deux dates. Pourquoi ne pas l'utiliser ?
    --> https://dev.mysql.com/doc/refman/5.7...ction_datediff

    Voici votre requête, un peu mieux présentée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT    *
        FROM  $table
       WHERE  TO_DAYS(NOW()) - TO_DAYS( `Date` ) > 30
         AND  TO_DAYS(NOW()) - TO_DAYS( `Date` ) < 60
         AND `Actif` <> 'Non'
    ORDER BY  Date ASC;
    Et voici ce que je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT    *
        FROM  $table
       WHERE  DATEDIFF(CURRENT_date, `Date`) between 30 and 60
         AND `Actif` <> 'Non'
    ORDER BY  Date ASC;
    Vu que nous n'avons pas le descriptif de votre colonne "date", on suppose qu'elle ne contient que la date mais pas l'heure.
    Si vous avez aussi l'heure, le mieux est alors d'utiliser "now()".

    Si par inadvertance, "now()" est inférieure à "date", le résultat sera négatif.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    novembre 2005
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2005
    Messages : 187
    Points : 51
    Points
    51

    Par défaut

    Merci de ces aides...

    Par contre, j'ai un peu peur, vu la longueur de la requête, que ce soit horrible à nettoyer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (...)
    // Requetes SQL
    $sql = $connexion->query ("SELECT * FROM $table");
    $select = $connexion->query ("SELECT *, TO_DAYS( NOW( ) ) - TO_DAYS( `Saisie` ) > 15 AS last, TO_DAYS( NOW( ) ) - TO_DAYS( `Date` ) > 15 AS new, TO_DAYS( NOW( ) ) - TO_DAYS( `Date` ) > 30 AS hava, TO_DAYS( NOW( ) ) - TO_DAYS( `Date` ) > 60 AS med, TO_DAYS( NOW( ) ) - TO_DAYS( `Date` ) > 90 AS old, TO_DAYS( NOW( ) ) - TO_DAYS( `Date` ) > 120 AS megaold, TO_DAYS( NOW( ) ) - TO_DAYS( `DatRel` ) < 15 AS datrelnew, TO_DAYS( NOW( ) ) - TO_DAYS( `DatRel2` ) < 15 AS datrelnew2, TO_DAYS( NOW( ) ) - TO_DAYS( `DatTrans` ) < 15 AS dattransnew FROM $table WHERE `Actif` <> 'Non' ORDER BY Date ASC");
    (...)
    P.s : Si je veux compter chaque requêtes ? Genre Combien de 'old", combien de "megaold", etc... ?
    Digital self-made Man - OnLine since 1993.
    http://wda-fr.org - http://mathieu.charreyre.net

Discussions similaires

  1. requête hirérachique mysql
    Par kitty2006 dans le forum Requêtes
    Réponses: 21
    Dernier message: 07/09/2006, 22h51
  2. EDBEngineError sur une requête pour MySQL
    Par Slyteck dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/08/2006, 14h17
  3. Sous-requête sous mysql 3
    Par photorelief dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/06/2006, 11h16
  4. Problème sur requête insert mysql
    Par kcizth dans le forum Requêtes
    Réponses: 5
    Dernier message: 04/02/2006, 18h37
  5. Performance de la requête connexion à MySQL
    Par yazerty dans le forum Requêtes
    Réponses: 5
    Dernier message: 22/12/2005, 14h40

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