J'ssaie de selectionner les enregistrement d'une table qui ont été faites d'aujord'hui jusqu'à UN MOIS et jai fait ceci :
$req=$bdd->query('SELECT id,montant_facture,DATE_FORMAT(date_facture, \'%d/%m/%Y à %Hh%imin%ss\') AS date_facture_fr
FROM factures WHERE date_facture BETWEEN NOW() AND DATE_DIFF(NOW(),INTERVAL 1 MONTH) ORDER BY date_facture DESC');
$req->execute();
J'ai une erreure : apparement j'ai mal utiliser la foction DATEDIFF donc du coup j'ai essayé celui là :
$req=$bdd->query('SELECT id,montant_facture,DATE_FORMAT(date_facture, \'%d/%m/%Y à %Hh%imin%ss\') AS date_facture_fr
FROM factures WHERE date_facture BETWEEN NOW() AND DATE_SUB(CURDATE(),INTERVAL 1 MONTH) ORDER BY date_facture DESC');
$req->execute();
Avec ce code,pas d'erreur mais un resultat vide alors que ma table contient bien des données durant cette interval de temps.
Merci d'avance pour votre contribution!!!
La recherche de la science est une obligation pour tout musulman et musulmane!!!
Tu aurais pu donner l'erreur renvoyée, ça peut aider.
DATEDIFF donne l'écart entre deux dates : ce n'est pas ce que tu veux. Si je comprends bien tu veux les dates entre "aujourd'hui moins un mois" et "aujourd"hui" (attention la valeur la plus petite doit être en premier avec BETWEEN).
Tu sais faire pour "aujourd'hui", regarde du côté de DATE_SUB() pour "aujourd'hui moins un mois"
Au fait je souhaite affiché les toutes operations du mois passé du 1er au 31. par exemple, aujord'hui nous somme le 26/03 et c'est que j'aimerai que la requette me fasse, c'est de choisir toutes les entré du moi de fevrier à partir du premier au 28. A chaque fois que nous somme dans un mois qu'il m'affiche les opérations du mois precedent.
Aprés quleques recherches, je suis tombé sur des discussions en anglais qui traite le meme probleme sauf que lorsque jai essayé d'adapter leur solution à mon probleme, j'ai des erreurs. voici ce que j'ai fais :
$req=$bdd->query('SELECT id,montant_facture
FROM factures WHERE date_facture >= DATEADD(mm,DATEDIFF(mm,0,GETDATE())-1,0)
AND date_facture < DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0) ORDER BY date_facture DESC');
Et Voici l'erreur que j'ai : et enfin si sa pourra servir, voici le lien de la discussion:
Tiffado avec les methodes DATEPART et DATEADD, je pense qu'il faudra d'abord une declaration du coup j'ai une erreur du genre DATEPART not exist.
Benzouye Ta solution marche bien pour l'instant et fais exactement ce que je souhaite mais lorsque je suis en Janvier et je souhaite voir pour decembre de l'année passée, comment dois-je proceder pour faire la vertication?
Merci encore pour votre soutien!!!
La recherche de la science est une obligation pour tout musulman et musulmane!!!
My bad, je pensais que tu avais droit au DATEADD vu que tu l'avais toi même mis dans tes requêtes d'avant x)
Selection entre 2 intervals de temps
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.