regrouper des valeurs par date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : regrouper des valeurs par date

par VaN » 11 mars 2009, 19:22

Salut,
Une piste ?
DATE_FORMAT(annonce_datetime, '%Y-%m-%d')
:wink:
J'ai trouvé même mieux :
SELECT COUNT(annonce_id) AS nb_annonces, DATE(annonce_datetime) AS annonce_date

par dunbar » 11 mars 2009, 18:12

Salut,
Une piste ?
DATE_FORMAT(annonce_datetime, '%Y-%m-%d')
:wink:

par ouckileou » 11 mars 2009, 17:50

Ne filtrer que sur la date (jour, mois, année), sans tenir compte de l'heure.

Il y a des fonctions toutes faites pour découper un datetime, regarde dans le manuel.

regrouper des valeurs par date

par VaN » 11 mars 2009, 17:31

Bonjour,

je souhaite compter des annonces, par date de publication, sur une certaine fourchette de dates.
CREATE TABLE `annonces` (
`annonce_id` int(11) NOT NULL auto_increment,
`annonce_datetime` datetime NOT NULL,
PRIMARY KEY (`annonce_id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
J'aimerai par exemple obtenir le résultat suivant :

14/01/2009 : 3 (annonces)
15/01/2009 : 2
16/01/2009 : 0
17/01/2009 : 7

Voici mon code :
$from = "2009-01-14 00:00:00";
$to = "2009-03-10 00:00:00";

$annonces = getDataFromQuery("SELECT COUNT(annonce_id) AS nb_annonces, annonce_datetime FROM ".$cfg_prefixe."annonces 
WHERE annonce_datetime >= '".$from."' AND annonce_datetime <= '".$to."' GROUP BY annonce_datetime");
Je pensais que le GROUP BY annonce_datetime allait marcher, mais il me sort ce résultat :
14/01/2009 : 1
14/01/2009 : 1
14/01/2009 : 1
15/01/2009 : 1
15/01/2009 : 1
Comment faire ?